Vergleichen von eingegebenen Werten
Mudknot7
- javascript
Habe folgendes Problem:
Ich habe 2 Eingabefelder in denen Zahlnwerte eingetragen werden. Die beiden überprüfe ich mittels Javascript ob es sich bei der Eingabe um eine Zahl handelt oder ober überhaupt was eingetragen wurde. So, und hier mein Problem. Der erste Wert sollte größer sein als der Wert im zweiten Feld. Falls das nicht der Fall ist sollte die Fehlermeldung: "1. Wert muss größer sein" erscheinen. Wie kann ich die Werte miteinander vergleichen?? Hoffe, jemand kann mir da weiterhelfen, denn ich häng schon ziemlich lang an dieser Sache fest!!
Hier mein Quellcode:
<head>
<script type="text/Javascript">
//<!--
var var_1 = new Array()
var_1[0] = new Array('KPA00','n','ist keine Zahl','');
var_1[1] = new Array('KPA01','n','ist keine Zahl','');
var_1[2] = new Array('KPA00','e','Sie müssen eine Zahl eingeben','');
var_1[3] = new Array('KPA01','e','Sie müssen eine Zahl eingeben','');
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=#D8D8D8 style="font-family:Verdana" >
<form method="post" name="testform1" id="testform" onsubmit="return validate(this,var_1)" action="Berechnung.asp" >
<input type="float" style="text-align:right" size="13" value="0" name="KPA00" maxlength="10" tabindex = "1" onmouseover="doTooltip(event,0)" onmouseout="hideTip()" onblur="refillfield(this);"> </td>
<input type="float" style="text-align:right" size="13" value="0" name="KPA01" maxlength="10" tabindex = "2" onmouseover="doTooltip(event,1)" onmouseout="hideTip()" onblur="refillfield(this);"> </td>
<br>
<input type="submit" name="button" id="button" value="Berechnen" onclick="return validate(this.form,var_1,msg_1)" onmouseover="doTooltip(event,39)" onmouseout="hideTip()" onclick="Starke()">
</form>
</body>
Liebe Grüsse, Mudy
Moin!
Habe folgendes Problem:
Ich habe 2 Eingabefelder in denen Zahlnwerte eingetragen werden. Die beiden überprüfe ich mittels Javascript ob es sich bei der Eingabe um eine Zahl handelt oder ober überhaupt was eingetragen wurde. So, und hier mein Problem. Der erste Wert sollte größer sein als der Wert im zweiten Feld. Falls das nicht der Fall ist sollte die Fehlermeldung: "1. Wert muss größer sein" erscheinen. Wie kann ich die Werte miteinander vergleichen??
Komisch. Was Du da gemacht hast sieht für die triviale Frage nach ziemlich viel und kompliziert aus.
Überprüfen, ob Zahl1 kleiner als Zahl2 ist:
if (document.forms[0].elements[x].value*1 > document.forms[0].elements[y].value) {
alert ("Klasse! Wert 1 ist größer als Wert 2.");
} else {
alert ("1. Wert muss größer sein als 2. Wert!");
}
Morgen!!
Danke!! Hmmmm, wo soll ich denn das am besten in meinem Beispiel einbaun und muss ich diese Funktion nicht mit einem onclick aufrufen?? Würd mich sehr über einen guten Vorschlag freun!!
Lieben Gruss, Mudy