我正在製作一個表單,我使用了令人驚歎的JQuery驗證插件(http://docs.jquery.com/Plugins/Validation/)。高級JQuery驗證:避免對特定條件進行驗證
此表格允許人們進行捐款並指定他們是否通過支票或信用卡支付。我使用單選按鈕來顯示信用卡asp面板或檢查asp面板。
我的規則和消息都工作。但是,我希望創建一個規則,以避免根據另一個因素(信用卡面板的可見性設置爲「隱藏」)驗證表單的某些部分(信用卡面板)。
請原諒我即將破壞你的代碼 - 我剝去了大部分不相關的部分,只留下那些證明我的方法去解決這個問題的方法。
我body_onload的javascrip方法:
function body_onload()
{
document.getElementById('<%=Cheque.ClientID %>').style.display = 'none';
document.getElementById('<%=CreditCard.ClientID %>').style.display = 'none';
}
我的單選按鈕來選擇付款方式:
<div style="width:430px; padding:5px;"><b>Payment Method:</b>
<input type="radio" name="PaymentMethod" value="Cheque" onclick="ShowPaymentPanel(this.value)"/>Cheque <input type="radio" name="PaymentMethod" value="CreditCard" onclick="ShowPaymentPanel(this.value)"/>Credit Card</div>
而且我長的validate方法:
$(document).ready(function(){
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "<br/> Please specify a valid phone number");
// validate form on keyup and submit
$("#TransactionForm").validate({
rules: {
FirstName: "required",
LastName: "required",
Phone: {
required: true,
phoneUS: true
},
CCName:{
required: true
},
CCNumber:{
required: true,
creditcard: true
},
CCExpiry:{
required: true,
digits: true,
minlength: 4,
maxlength: 4
}
},
messages: {
FirstName: "<br/> Required",
LastName: "<br/> Required",
Phone: {required: "<br/> Required"},
CCName: "<br/> Please enter the name on the card",
CCNumber: {
required: "<br/> Please enter the card number",
creditcard: "<br/> Please enter a valid card number"
},
CCExpiry: {
required: "<br/> Please enter the expiry date",
minlength: "<br/> Please enter as MMYY",
maxlength: "<br/> Please enter as MMYY",
digits: "<br/> Date must be numeric"
}
}
});
});
任何幫助將是很大的不勝感激!
謝謝,這正是我需要的! – splatto 2009-08-22 23:22:13