resetForm()不会调用unhighlight

时间:2014-05-29 13:45:45

标签: jquery validation

我想在调用resetForm()时调用unhighlight。有没有办法做到这一点?

$('#coupon_submit_btn').on('click',function(){
  .....
  $('#coupon_code').val("");
  validator.resetForm(); ......

编辑:

其中验证者是我验证的表格

var validator = $('#checkout_form_payment').validate({ rules......

1 个答案:

答案 0 :(得分:2)

对于记录,如果您希望resetForm()调用unhighlight(),可以将以下内容添加到JS中:

$.validator.prototype.resetForm = function() {
    if ( $.fn.resetForm ) {
        $(this.currentForm).resetForm();
    }
    this.submitted = {};
    this.lastElement = null;
    this.prepareForm();
    this.hideErrors();
    var elements = this.elements().removeData("previousValue").removeAttr("aria-invalid");
    if (this.settings.unhighlight) {
        for (var i = 0; elements[i]; i++) {
            this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass);
        }
    }
}

这将替换将现有resetForm()替换为复制现有resetForm()行为的代码,但交换删除错误类的代码,而不是在每个元素上调用unhighlight()