Я создаю форму, для которой я использую удивительный плагин проверки JQuery для (http://docs.jquery.com/Plugins/Validation/).
Эта форма позволяет людям делать пожертвования и указывать, будут ли они платить чеком или кредитной картой. Я использую переключатели, чтобы отобразить либо панель 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>
И мой длинный метод проверки:
$(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"
}
}
});
});
Любая помощь будет принята с благодарностью!