首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当与jQuery Validate的submitHandler()方法一起使用时,DirtyForms无法正常工作

当与jQuery Validate的submitHandler()方法一起使用时,DirtyForms无法正常工作
EN

Stack Overflow用户
提问于 2018-05-31 22:44:53
回答 1查看 81关注 0票数 0

我同时使用DirtyForms和popupar jQuery Validate来验证我的表单。我还需要使用submitHandler()方法,因为我在实际发送表单之前执行了几个操作。在这种情况下,即使是在正常的提交表单上,DirtyForms也会被触发,而不应该触发。

代码语言:javascript
复制
$('.validate').validate({
	// submitHandler causer DirtyForms to be triggered evn on normal form submit
  submitHandler: function (form) {
    // do a couple of things here, then...
    form.submit();
  }
});

$('form[method="post"]').dirtyForms();
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.dirtyforms/2.0.0/jquery.dirtyforms.min.js"></script>

<p>Fill the field and send the form, you'll see that DirtyForms is triggered even if it should not</p>
<form action="#" method="post" class="validate">
  <input type="text" name="username" required>
  <button type="submit">send</button>
</form>

有什么可以帮忙的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 23:44:17

因为submitHandler只在表单有效时触发,所以这里不需要DirtyForms来做任何事情。

所以只要在submitHandler中使用.dirtyForms('setClean')就可以了

代码语言:javascript
复制
$('.validate').validate({
    submitHandler: function(form) {
        // do a couple of things here, then...
        $('form:dirty').dirtyForms('setClean');  // <- kill DirtyForms
        form.submit();
    }
});

$('form[method="post"]').dirtyForms();

演示:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50627008

复制
相关文章

相似问题

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