jQuery validate - 根据用户选择设置条件规则 [英] jQuery validate - set conditional rules based on user selection

查看:1033
本文介绍了jQuery validate - 根据用户选择设置条件规则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以使用jQuery验证轻松设置条件规则,

Is it possible to easily setup a conditional rule with jQuery validate,

简单地说我正在尝试添加一些逻辑,如果勾选了复选框A - 然后必须填写字段'A',如果复选框'B'已完成,则字段'B1'和& 'B2'必须完成。

Simply put i'm trying add some logic which says, if checkbox 'A' is ticked - then field 'A' must be completed, if checkbox 'B' completed then fields 'B1' & 'B2' must be completed.

例如,如果选中名为'paypal'的复选框,则必须填写名为'paypal_address'的字段。

e.g if a checkbox with the name 'paypal' is checked - then the field named 'paypal_address' must be completed.

我现有的逻辑如下:

<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');
    }
});

UPDATE

使用以下方法Rohit我几乎让这个工作完美..
我的表格有三个复选框(只能选择一个)
1. Paypal
2.银行
3.支票/支票

Using the method below from Rohit i've almost got this working perfectly.. My form has three checkboxes (only one can be selected) 1. Paypal 2. Bank 3. Check/Cheque

如果Paypal被选中(默认情况下是这样),那么只需要'paypal_email_address'字段,如果银行被选中,那么'account_number'& 'sort_code'字段是必需的&最后,如果选中Check,则需要'check_payable_field'。

If Paypal is checked (by default it is) then only have the 'paypal_email_address' field required, if Bank is checked then 'account_number' & 'sort_code' fields are required & finally if Cheque is checked the 'check_payable_field' is required.

//到目前为止我已经得到了这个
$(。paymethod)。on( click,function(){
var payment_method = $(this).val();

// i've got this so far $( ".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实际上直接支持这个,使用依赖关系表达式

jQuery Validate actually directly supports this, using dependency expressions.

所有你需要的要做的就是更改你的验证选项:

All you need to do is change your validate options like this:

$('#myform').validate({
    rules: {
        fieldA: {
           required:'#checkA:checked'
        }
    }
});

就是这样!

这篇关于jQuery validate - 根据用户选择设置条件规则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆