问题描述
我正在建立一个使用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浏览器中,当我在页面上的任意位置点击Enter时,都会触发表单提交并且验证也不起作用。 有什么可以避免的吗? 如果没有提交按钮,当我们按下Enter键时,浏览器是否应该不提交表单?
1楼
使用以下语法:
<form onsubmit="return validateAndSubmit()">
...
如果您需要捕获返回键,也许可以通过将keydown事件绑定到输入并对keyCode#13执行一些操作来处理它
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>
3楼
我不确定是否有与此相关的标准。
无论如何,您只需采取一种更强大的策略就可以完全避免麻烦:将验证实现为对表单的onsubmit
操作,而不是对按钮的onclick
操作。
我几乎从不使用表格中的按钮。
不必为您自己做,只会让我失望,这对用户不利。
所以无论如何。
表单onsubmit
是必经之路。
如果您使用兼容的Javascript而不是HTML属性,我将不胜感激:)