是否可以使用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. Paypal
2.银行
3.支票/支票

如果选中了 Paypal (默认情况下是),则仅需要“paypal_email_address”字段,如果选中了“银行”,则需要“account_number”和“sort_code”字段;最后,如果选中了Check,则需要“check_payable_field”。

//到目前为止,我已经知道了
$(“.paymentMethod”).on(“click”,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/

10-11 22:36
查看更多