好吧,我遇到了一個煩人的問題。我在我的研究中瞭解到,多次使用validate()不起作用。所以我設置了一個響應點擊某些按鈕的按鈕的功能。這些按鈕發送一個參數來標識要驗證的元素。我這樣做是因爲我正在使用.fadeOut()/。fadeIn()無縫地從節到節。一旦你點擊了第一部分按鈕(這會將你帶到第二部分),它將驗證第一部分中的元素,如果第一部分被認爲是'有效',那麼它將繼續執行fadeOut/fadeIn到部分b ....等等上。jquery驗證(使用jQuery驗證插件) - 基於點擊按鈕激活特定元素的驗證規則
問題是,儘管我已經爲a和b部分設置了規則和消息,但b部分似乎仍未驗證。
這裏是我的代碼 -
function validation(page) {
var rules;
var messages;
var validator;
if (page == 'secA') {
rules = {
/*gneral information validation*/
gCompanyTxt: {
required: true,
minlength: 2
}
messages = {
/*general info validator messages*/
gCompanyTxt: {
required: "The 'Company' text box is empty safgadfgad",
minlength: "The 'Company' text box needs to have at least 2 characters"
}
};
validator = new jQueryValidatorWrapper("form1", rules, messages);
} else if (page == 'secB') {
rules = {
txtFirst: {
required: true,
minlength: 2
}
};
messages = {
txtFirst: {
required: "Your first name is required",
minlength: "Your first name needs to be at least two characters"
}
};
validator = new jQueryValidatorWrapper("form1", rules, messages);
}
if (!validator.validate()) {
return;
} else {
if (page == 'secA') {
$('#secA').hide();
$('#secB').fadeIn('slow');
} else if (page == 'secTwo') {
$('#secB').hide();
$('#secC').fadeIn('slow');
}
}
}
的按鈕是這樣:
<button type = "button" class="buttonSale" id="btnA" onclick="validation('secA')">Proceed to Section B</button>
<button type = "button" class="buttonSale" id="btnB" onclick="validation('secB')">Proceed to Section C</button>
這樣做的結果是 - 當點擊「btnA」代碼工作有效,如果事情是空的或不正確的,驗證火災,我能夠解決這個問題,然後繼續前進。但是,一旦我在B部分,然後點擊「btnB」,它只是移動到下一個頁面,看似跳過if語句:
if (!validator.validate()) {
return;
}
我想我只是失去了一些東西很簡單在這裏,但我我厭倦了看它,需要專注於其他事情。謝謝!
是不是ignore參數已經設置爲忽略隱藏或不可見的對象?這特別讓我困惑,因爲最初,這就是我所做的。我在驗證過程之前設置了所有規則和消息,並且它同時驗證了所有內容(包括隱藏和不可見元素)。 – zillaofthegods 2012-02-10 22:13:56
默認只是忽略'type ='hidden''元素;你可以更新它來包含':hidden',這是一個jQuery擴展表達式,用於不可見的元素。 – Mathletics 2012-02-13 18:14:50