我想在调用resetForm()时调用unhighlight。有没有办法做到这一点?
$('#coupon_submit_btn').on('click',function(){
.....
$('#coupon_code').val("");
validator.resetForm(); ......
编辑:
其中验证者是我验证的表格
var validator = $('#checkout_form_payment').validate({ rules......
答案 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()
。