我一定错过了什么。
我有一张表格:
<form action="/" method="post">
<input type="text" name="field" required />
<input type="submit" value="Submit" />
</form>
我希望在用户点击submit
按钮时添加特殊行为而不填写required
字段。我有jQuery所以我的直觉写道:
$('form').on('submit', function(e){
console.log('Adding special behavior');
});
但这并未触发。寻找$('form').on('validate')
或其他东西,却找不到任何东西。
此步骤是否没有触发任何事件?我是否必须删除required
并手动处理所有验证?这将是令人惊讶的!
由于
编辑:这不是this question的重复,因为我不(想)使用jquery.validate.js
而我的问题不依赖于jQuery(我碰巧使用它,但这只是帮助明晰)。这是我想澄清的HTML5行为。
答案 0 :(得分:2)
当您的输入具有必需属性时,浏览器会在提交表单之前确保输入有效。因此,您的活动永远不会被触发。
但是,您可以在表单中添加novalidate属性,以绕过浏览器验证并执行手动验证,同时在输入上保留必需的属性。
<form action="/" method="post" novalidate>
<input type="text" name="field" required />
<input type="submit" value="Submit" />
</form>
此外,如果您想停止正常提交表单,则必须在活动中执行preventDefault
。
$('form').on('submit', function(e){
e.preventDefault();
console.log('Adding special behavior');
});
答案 1 :(得分:0)
使用表格onsubmit:
< form action="/" method="post" onsubmit="test()">
function test() {
return false; //never submit
}