JavaScript表单验证无法正常工作

问题描述:

这是我的HTML/Javascript代码。我正在将填充表单提交给Servlet。表单验证似乎存在一些问题。我无法弄清楚为什么。如果我在textbox2中输入0并且从下拉列表框中选择Divide,它会提示我输入一个新值。但它没有,并且提交表单时没有提示任何由于被零除的抛出异常的servlet。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 2012-04-10 15:11:53

+0

-1问题是什么?请更准确地说,添加错误,添加错误或任何可以帮助我们的事情,而不仅仅是“它不工作,帮助” – 2012-04-10 15:11:54

+0

你希望发生什么?是否有JavaScript验证错误?或者验证逻辑失败? – MatuDuke 2012-04-10 15:17:36

更改功能:

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并放置在操作中。 – 2012-04-10 15:25:39

+0

对不起,我改变了代码...你可以检查吗? – Oras 2012-04-10 15:29:13

+0

不起作用。我被卡住了。无论如何感谢您的建议。错字:应该是opValue ==“/”。 – 2012-04-10 16:51:05