我正在构建一个使用jQUery验证插件的网站,并希望在提交表单之前验证一些内容。我的代码如下所示
<form>
<input type="button" value="Submit the Form" onclick="validateAndSubmit()" />
</form>
<script language="javascript">
function validateAndSubmit(){
//do some validation and then submit
}
</script>
在Firefox中,这非常有效。在Chrome中,当我点击页面中的任意位置时,表单提交会被触发,验证也不起作用。有什么可以避免的吗?如果没有提交按钮,当我们点击输入时浏览器不应该提交表单吗?
答案 0 :(得分:3)
使用以下语法:
<form onsubmit="return validateAndSubmit()">
...
如果你需要捕获返回键,也许你可以通过将keydown事件绑定到输入并在keyCode上执行一些操作来处理它#13
答案 1 :(得分:2)
试试这个方法:
<form onsubmit="return validateAndSubmit(this);">
<input type="submit" value="Submit the Form"/>
</form>
<script language="javascript">
function validateAndSubmit(form_obj){
if(some_variable == 'correct_value') {
form_obj.submit();
return true;
} else {
alert('Wrong value');
return false;
}
//do some validation and then submit
}
</script>
答案 2 :(得分:1)
我不确定是否有关于此的标准。
无论如何,只需采用更强大的策略,您就可以完全避免麻烦:在表单上将验证实施为onsubmit
操作,而不是按钮的onclick
操作。我几乎从不在表格中使用按钮;不得不这样做只会让我失望,这对用户来说并不好。
无论如何。表格onsubmit
是要走的路。如果您使用不引人注目的Javascript而不是HTML属性,我将不胜感激:)