是否可以使用 jQuery validate 轻松设置条件规则,
简单地说,我正在尝试添加一些逻辑,如果复选框“A”被勾选 - 那么字段“A”必须完成,如果复选框“B”完成则字段“B1”和“B2”必须完成.
例如,如果选中名为“paypal”的复选框 - 则必须填写名为“paypal_address”的字段。
我现有的逻辑如下:
<script type="text/javascript">
$(document).ready(function () {
$('#checkout-form').validate({
rules: {
first_name: {
minlength: 2,
required: true
},
last_name: {
minlength: 2,
required: true
},
address_1: {
minlength: 2,
required: true
},
address_2: {
minlength: 2,
required: true
},
post_code: {
minlength: 2,
required: true
},
email: {
required: true,
email: true
},
terms: {
required: true,
}
},
errorPlacement: function(error, element) {
element.addClass('error');
},
highlight: function (element) {
$(element).addClass('nonvalid')
.closest('.form-group').removeClass('error');
},
success: function (element) {
//element.addClass('valid')
//.closest('.form-group').removeClass('error');
element.remove('error');
}
});
更新
使用 Rohit 提供的以下方法,我几乎已经完美地完成了这项工作。 我的表单有三个复选框(只能选择一个) 1. 支付宝 2. 银行 3.检查/检查
如果选中 Paypal(默认情况下),则只需要“paypal_email_address”字段,如果选中“Bank”,则需要“account_number”和“sort_code”字段,最后,如果选中“Check_payable_field”,则需要“check_payable_field” .
//到目前为止我已经知道了 $( ".paymentMethod").on( "点击", function() { var payment_method = $(this).val();
if (payment_method == 'paypal') {
paypal_checked = true;
} else if (payment_method == 'bank-transfer') {
bank_checked = true;
paypal_checked = false;
} else if (payment_method == 'cheque') {
cheque_checked = true;
paypal_checked = false;
}
});
最佳答案
jQuery Validate 实际上直接支持这个,使用 dependency expressions .
您需要做的就是像这样更改您的验证选项:
$('#myform').validate({
rules: {
fieldA: {
required:'#checkA:checked'
}
}
});
就是这样!
关于javascript - jQuery validate - 根据用户选择设置条件规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19543354/