首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在HTML5验证之前捕获提交

在HTML5验证之前捕获提交
EN

Stack Overflow用户
提问于 2013-02-28 22:43:55
回答 4查看 7.4K关注 0票数 21

有没有办法在HTML5验证开始之前捕获表单的submit操作?

这是what I have tried

HTML

代码语言:javascript
复制
<form method='post' >
    <fieldset>
        <input type='email' name='foo' required />
        <input type='submit' />
    </fieldset>
</form>

jQuery

代码语言:javascript
复制
$('form').submit(function() {
    $('fieldset').addStyle('error');
    return false;
})

但是,只有在HTML5验证通过后,才会触发submit

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-28 22:48:15

不,在所有浏览器中,HTML5验证都发生在任何提交事件之前,所以除了更改事件类型之外,它是不可能的,比如单击按钮:

代码语言:javascript
复制
$('input[type="submit"]').on('click', function() {
    $('fieldset').addClass('error');
});
票数 9
EN

Stack Overflow用户

发布于 2013-02-28 22:49:33

使用jquery在页面首次加载时禁用表单上的验证,这样就可以防止在onsubmit处理程序运行之前进行任何验证:

代码语言:javascript
复制
$(document).ready(function(){
   $('form').attr('novalidate','novalidate');
})

然后在onsubmit函数的末尾,通过javascript (使用checkValidity())对每个字段手动运行HTML5验证

票数 7
EN

Stack Overflow用户

发布于 2013-02-28 22:55:04

将按钮从

代码语言:javascript
复制
<input type='submit' />

添加到常规按钮

代码语言:javascript
复制
<input type='button' id="submit" />

在此之后,只需捕获click事件并自己提交

代码语言:javascript
复制
$('#submit').on('click', function() {
    $('fieldset').addStyle('error');

    // if everything is ok
    $('form').submit(); 
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15138329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档