有没有办法在HTML5验证开始之前捕获表单的submit
操作?
HTML
<form method='post' >
<fieldset>
<input type='email' name='foo' required />
<input type='submit' />
</fieldset>
</form>
jQuery
$('form').submit(function() {
$('fieldset').addStyle('error');
return false;
})
但是,只有在HTML5验证通过后,才会触发submit
。
发布于 2013-02-28 22:48:15
不,在所有浏览器中,HTML5验证都发生在任何提交事件之前,所以除了更改事件类型之外,它是不可能的,比如单击按钮:
$('input[type="submit"]').on('click', function() {
$('fieldset').addClass('error');
});
发布于 2013-02-28 22:49:33
使用jquery在页面首次加载时禁用表单上的验证,这样就可以防止在onsubmit
处理程序运行之前进行任何验证:
$(document).ready(function(){
$('form').attr('novalidate','novalidate');
})
然后在onsubmit
函数的末尾,通过javascript (使用checkValidity()
)对每个字段手动运行HTML5验证
发布于 2013-02-28 22:55:04
将按钮从
<input type='submit' />
添加到常规按钮
<input type='button' id="submit" />
在此之后,只需捕获click事件并自己提交
$('#submit').on('click', function() {
$('fieldset').addStyle('error');
// if everything is ok
$('form').submit();
})
https://stackoverflow.com/questions/15138329
复制相似问题