javascript - jQuery validate - 根据用户选择设置条件规则

标签 javascript jquery jquery-validate

是否可以使用 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/

相关文章:

javascript - 如何在 meteor 中的集合(cursor.observe Changes)中插入新记录时播放音频以通知

java - 在 RESTlet 上读取请求数据

jquery - 使用 jquery 识别特定元素的位置

php - 从 JQuery 调用 PHP 文件以检查唯一标识符

如果我将输入 type=submit 更改为 type=button,jquery 验证插件将无法工作

jQuery 验证特殊方法不会出现自定义消息

jquery - 在元素下方显示 jquery 验证错误

javascript - 从 UIWebView 中提取文本

javascript - 如何添加到数组

javascript - 更改按钮上的跨度文本