2012-04-10 17 views
-4

これは私のHTML/Javascriptコードです。埋め込まれたフォームをサーブレットに送信します。フォームの検証に問題があるようです。なぜ私は理解できません。私がtextbox2に0を入力し、ドロップダウンリストボックスからDivideを選択すると、新しい値を入力するよう促されます。しかし、そうではなく、サーブレットにプロンプ​​トを出さずにフォームが送信され、サーブレットはゼロ除算のために例外をスローします。JavaScriptフォームの検証正しく機能していません

<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

はそれが放火犯するすべてのエラーを投げていますか? – unfrev

+0

-1何が問題なのですか?してください、より正確には、バグを追加し、エラーや何か私たちを助けることができるものを追加する "それは動作しない、助けて" –

+0

あなたは何が起こるのですか? JavaScriptの検証エラーがありますか?または検証ロジックが失敗しましたか? – MatuDuke

答えて

0

変更する機能:

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

私は値を比較しています。あなたのコードはselectedIndexとopを取得します。 –

+0

ご迷惑をおかけして申し訳ありませんが、コードを変更しました。確認できますか? – Oras

+0

動作しません。ハマった。とにかくあなたの提案に感謝します。 Typo:opValue == "/"だったはずです。 –

関連する問題