3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
我自己遇到了這個(gè)問(wèn)題。在基于步驟構(gòu)建表單時(shí),我需要有條件地驗(yàn)證表單的各個(gè)部分(即某些輸入在運(yùn)行時(shí)動(dòng)態(tài)添加)。結(jié)果,有時(shí)一個(gè)選擇下拉列表將需要驗(yàn)證,而有時(shí)則不需要。但是,在折磨結(jié)束之前,需要對(duì)其進(jìn)行驗(yàn)證。結(jié)果,我需要一個(gè)可靠的方法,而不是解決方法。我查閱了的源代碼jquery.validate。
這是我想出的:
通過(guò)指示驗(yàn)證成功來(lái)清除錯(cuò)誤
呼叫處理程序以顯示錯(cuò)誤
清除所有存儲(chǔ)的成功或錯(cuò)誤
重置整個(gè)表單驗(yàn)證
這是代碼中的樣子:
function clearValidation(formElement){
//Internal $.validator is exposed through $(form).validate()
var validator = $(formElement).validate();
//Iterate through named elements inside of the form, and mark them as error free
$('[name]',formElement).each(function(){
validator.successList.push(this);//mark as error free
validator.showErrors();//remove error messages if present
});
validator.resetForm();//remove error class on name elements and clear history
validator.reset();//remove all error and success data
}
//used
var myForm = document.getElementById("myFormId");
clearValidation(myForm);
縮小為jQuery擴(kuò)展:
$.fn.clearValidation = function(){var v = $(this).validate();$('[name]',this).each(function(){v.successList.push(this);v.showErrors();});v.resetForm();v.reset();};
//used:
$("#formId").clearValidation();

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果您只想隱藏錯(cuò)誤:
$("#clearButton").click(function() {
$("label.error").hide();
$(".error").removeClass("error");
});
如果指定了errorClass,則調(diào)用該類(lèi)以隱藏error(默認(rèn))我上面使用的那個(gè)。
- 3 回答
- 0 關(guān)注
- 987 瀏覽
添加回答
舉報(bào)