2 Werte in einem Eingabefeld überprüfen
Mudknot6
- javascript
Hallo Leute.
Ich habe mir folgenden Quelltext kopiert. Es handelt sich hierbei um 2 Eingabefelder. Im ersten soll kontrolliert werden, ob ein Text eingegeben wurde und im 2., ob es sich bei der Eingabe um eine Zahl handelt. Ich würde aber gerne das ganze in einem Eingabefeld überprüfen. Weiß vielleicht irgendjemand wie ich das in diesem Beispiel am besten machen könnte?? Bitte um Hilfe!!!
Hier der Quellcode:
<head>
<script type="text/JavaScript">
//<!--
var var_1 = new Array()
var_1[0] = new Array('bier','e','Sie haben keine Biermarke angegeben','');
var_1[1] = new Array('zahl','n','ist keine Zahl','');
var msg_1 = 'Fehler:';
function validate(sender,myarray,err_hd){
var err_msg = !err_hd?new Array('Folgende Fehler sind aufgetreten:\n'):new Array(err_hd+'\n');
var error = false;
for (i=0;i<myarray.length;i++){
field = document.forms[sender.name].elements[myarray[i][0]];
/* Block 1 überprüft Felder, die ausgefüllt sein müssen */
if (myarray[i][1].indexOf('e')>-1){
if (!field.value){
error = true;
err_msg.push(myarray[i][2]);
}
}
/* Block 3 überprüft Felder, deren Wert eine Zahl sein muss */
else if (myarray[i][1].indexOf('n')>-1) {
var num_error = false;
if(field.value) {
var myvalue = field.value;
var num = myvalue.match(/[^0-9,.]/gi)
var dot = myvalue.match(/./g);
var com = myvalue.match(/,/g);
if (num!=null) {
num_error = true;
}
else if ((dot!=null)&&(dot.length>1)) {
num_error = true;
}
else if ((com!=null)&&(com.length>1)) {
num_error = true;
}
else if ((com!=null)&&(dot!=null)) {
num_error = true;
}
}
if (num_error==true) {
error = true;
err_msg.push(myvalue+" "+myarray[i][2]);
}
}
}
/* im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das
Formular ohne Beanstandung ist, wird es übertragen */
if (error) {
err_msg = err_msg.join('\n\xB7 ');
alert(err_msg);
return false;
}
else {
return true;
}
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">
<h2 class="Sh2">Beispiel</h2>
<form name="testform1" id="testform" onSubmit="return validate(this,var_1)">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td><input name="bier" id="bier" type="text"></td>
<td>Biermarke (muss ausgefüllt sein)</td>
</tr>
<tr>
<td><input name="zahl" id="zahl" type="text" value="08-fuffzehn"></td>
<td>Zahl (muss eine Zahl sein)</td>
<td colspan="2"><input type="button" name="button" id="button" value="testen" onclick="return validate(this.form,var_1,msg_1)" ></td>
</tr>
</table>
</form>
</body>
Ich würde aber gerne das ganze in einem Eingabefeld überprüfen.
was meinst du damit?
du möchtest in ein textfeld sowohl ne biermarke als auch eine zahl eingeben udn dann den inhalt dieses feldes parsen?
Gruß
Phil
Uuuuupsii, die Biermarke war schon im Beispiel. Sorry!! Also ich möchte in einem Textfeld kontrollieren, ob eine Zahl eingegeben wurde und ob es sich wirklich um eine Zahl handelt.
Liebe Grüße, Mudy
Also um ein Feld auf Inhalt und Konsistenz zu prüfen reicht in diesem fall:
if(document.forms[0].elements["zahl"].value.length != 0) {
if(isFinite(document.forms[0].elements["zahl"].value) {
return(true);
}
else {
alert("Es handelt sich nicht um eine Zahl!");
return(false);
}
}
else {
alert("Feld wurde leer gelassen.\nBitte eine Zahl eingeben!");
return(false);
}
Gruß
Phil
if(isFinite(document.forms[0].elements["zahl"].value) {
da fehl ne klammer:
if(isFinite(document.forms[0].elements["zahl"].value)) {
return(true);
sorry ;-)
Gruß
Phil
Danke Phil!!!
Ich würd es awa gerne mittels meinem Beispiel schaffen. Brauch es so für die Schule. Wenn mir bitte wer helfen könnte?!?
Grüsse, Mudy
Jaaa, das andere Feld sollte komplett weg sein, sodass ich nurmehr ein Eingabefeld habe und in diesem sollte dann die Kontrolle ("Feld leer" oder "Zahl eingeben") durchgeführt werden.
Mfg, Mudy
<head>
<script type="text/JavaScript">
//<!--
var var_1 = new Array()
var_1[0] = new Array('zahl','n','ist keine Zahl','');
var msg_1 = 'Fehler:';
function validate(sender,myarray,err_hd){
var err_msg = !err_hd?new Array('Folgende Fehler sind aufgetreten:\n'):new Array(err_hd+'\n');
var error = false;
for (i=0;i<myarray.length;i++){
field = document.forms[sender.name].elements[myarray[i][0]];
/* Block 1 überprüft Felder, die ausgefüllt sein müssen */
if (myarray[i][1].indexOf('e')>-1){
if (!field.value){
error = true;
err_msg.push(myarray[i][2]);
}
}
/* Block 3 überprüft Felder, deren Wert eine Zahl sein muss */
else if (myarray[i][1].indexOf('n')>-1) {
var num_error = false;
if(field.value) {
var myvalue = field.value;
var num = myvalue.match(/[^0-9,.]/gi)
var dot = myvalue.match(/./g);
var com = myvalue.match(/,/g);
if (num!=null) {
num_error = true;
}
else if ((dot!=null)&&(dot.length>1)) {
num_error = true;
}
else if ((com!=null)&&(com.length>1)) {
num_error = true;
}
else if ((com!=null)&&(dot!=null)) {
num_error = true;
}
}
if (num_error==true) {
error = true;
err_msg.push(myvalue+" "+myarray[i][2]);
}
}
}
/* im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das
Formular ohne Beanstandung ist, wird es übertragen */
if (error) {
err_msg = err_msg.join('\n\xB7 ');
alert(err_msg);
return false;
}
else {
return true;
}
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">
<h2 class="Sh2">Beispiel</h2>
<form name="testform1" id="testform" onSubmit="return validate(this,var_1)">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td><input name="zahl" id="zahl2" type="text" value="08-fuffzehn"></td>
<td>Zahl (muss eine Zahl sein)</td>
<td colspan="2"><input type="button" name="button" id="button" value="testen" onClick="return validate(this.form,var_1,msg_1)" ></td>
</tr>
</table>
</form>
</body>
feddich
Gruß
Phil
Wow!!! DANKE VIELMALS Phil!! Hast mir wahnsinnig weitergeholfen!! Vielen lieben Dank nochmals.
Ganz liebe Grüsse, Mudy
Nichts zu danken,
das nächste mal Hausaufgaben selber machen :Þ
waren eine zeile löschen + 2 abändern ;-)
Gruß
Phil
if(isFinite(document.forms[0].elements["zahl"].value) {
da fehlt ne klammer: if(isFinite(document.forms[0].elements["zahl"].value)) {
return(true);
sorry ;-)
Phil
Ich würd es awa gerne mittels meinem Beispiel schaffen. Brauch es so für die Schule. Wenn mir bitte wer helfen könnte?!?