我有一个表单,在其验证函数中,一行抛出未捕获的异常,但不是停止执行,浏览器提交表单
function validation(){
var value = document.forms["myform"]['badInput'].value;//this line throws an exception
return false;
}
<form name='myform' action ="" onsubmit="return validation()" method="POST">
<input name='myInput' value="testing" type="text"/>
<input value="submit" type="submit"/>
</form >
上面的代码提供了一个简单的例子,但我可能正在做一些可能产生异常的计算或转换。 处理此问题的一种方法是将其包含在try catch
中function validation(){
var ret =true;
try{
var value = document.forms["myform"]['badInput'].value;
......//some condition to make ret=false
} catch(e){
ret = false
}
return ret;
}
但我正在寻找更好的方法来做到这一点?我认为浏览器应该默认处理这个问题,如果onsubmit函数抛出异常,是否会在规范中的任何地方提到浏览器应该如何表现?
答案 0 :(得分:1)
var value = document.forms["myform"]['badInput'].value;
//this line throws an exception
因为表单中没有“badInput”命名元素。虽然最好使用form.elements["elementName"]
或者更好地使用JS框架(比如jQuery / dojo / etc.)。
如果您仍需要此行,可以查看typeof
:
if (typeof document.forms["myform"].elements['badInput'] != "undefined")
...