2012-04-10 16 views
-4

Dies ist mein HTML/Javascript Code.Ich überweise das ausgefüllte Formular an ein Servlet. Es scheint ein Problem mit der Formularvalidierung zu geben. Ich kann nicht herausfinden warum. Es soll mich auffordern, einen neuen Wert einzugeben, wenn ich 0 in Textfeld2 eintrage und aus dem Dropdown-Listenfeld Dividieren auswähle. Aber es tut es nicht und das Formular wird ohne eine Aufforderung an das Servlet übergeben, das Exception aufgrund von Division durch Null auslöst.JavaScript Form Validation funktioniert nicht richtig

<html> 
<head> 
<title>A simple calculator</title> 
<script language="text/javascript"> 
function validate(b,op) 
{ 
    var newval=b;   
    if(b=="0"&&op=="/") 
      newval=prompt("Enter a non-zero value for B:",1); 
    document.CalculatorForm.textbox2.value=newval; 
} 
</script> 
</head> 
<body> 
<form name="CalculatorForm" method="get" action="http://localhost:8080/hello/CalculatorServlet" onsubmit="validate(this.textbox2.value,this.dropdown.options[this.dropdown.selectedIndex].value);"> 
A:<input type="text" name="textbox1" id="T1" /><br> 
B:<input type="text" name="textbox2" id="T2" /><br> 
Operation<br> 
<select name="dropdown" id="dd"> 
<option value="+">Add</option> 
<option value="-">Subtract</option> 
<option value="*">Multiply</option> 
<option value="/">Divide</option> 
</select> 
<br> 
<input type="submit" value="compute"/> 
</form> 
</body> 
</html> 
+0

Hat es irgendwelche Fehler geworfen Firebug? – unfrev

+0

-1 Was ist das Problem? BITTE, sei genauer, füge den Fehler hinzu, füge den Fehler hinzu oder irgendetwas, das uns mehr helfen kann als "es funktioniert nicht, helfe" –

+0

Was siehst du vor? Gibt es einen JavaScript-Validierungsfehler? Oder Ihre Validierungslogik schlägt fehl? – MatuDuke

Antwort

0

Ändern Sie die Funktion:

function validate() 
{ 
    var b = document.getElementById('T2').value; 
    var op = document.getElementById('dd') 
    var opValue = op.options[op.selectedIndex].value; 
    if(b=='0' && op=='/') 
     //do something 
    else 
     // submit 
} 
+0

Ich vergleiche die Werte. Ihr Code erhält den ausgewähltenIndex und die Orte in op. –

+0

Sorry für den Fehler, ich habe den Code geändert ... können Sie überprüfen? – Oras

+0

Funktioniert nicht. Ich stecke fest. Trotzdem danke für deinen Vorschlag. Tippfehler: sollte opValue == "/" sein. –

Verwandte Themen