Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery验证-根据用户选择设置条件规则_Javascript_Jquery_Jquery Validate - Fatal编程技术网

Javascript jQuery验证-根据用户选择设置条件规则

Javascript jQuery验证-根据用户选择设置条件规则,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,是否可以使用jQuery validate轻松设置条件规则 简单地说,我正在尝试添加一些逻辑,即如果勾选了复选框“A”,那么字段“A”必须完成,如果复选框“B”完成,那么字段“B1”和“B2”必须完成 e、 g如果选中了名为“paypal”的复选框,则必须填写名为“paypal\u address”的字段 我现有的逻辑如下: <script type="text/javascript"> $(document).ready(function () { $('#checkout-fo

是否可以使用jQuery validate轻松设置条件规则

简单地说,我正在尝试添加一些逻辑,即如果勾选了复选框“A”,那么字段“A”必须完成,如果复选框“B”完成,那么字段“B1”和“B2”必须完成

e、 g如果选中了名为“paypal”的复选框,则必须填写名为“paypal\u 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');
    }
});

}))

Edit:一开始我没有正确理解这个问题,对此我深表歉意:p但是,这里有一个解决方案应该是可行的

您可以做的是检查复选框是否已选中,然后为paypal_地址设置所需的规则:

 var checked = false;
 $( "#paypalCheckbox" ).on( "click", function() {
      checked = $('#paypalCheckbox').is(':checked');
  });
然后在规则中可以添加:

 paypal_address : {
 required: checked
 }

您可以使用自定义验证方法。 例如:

jQuery.validator.addMethod("checkA", function(value, element) {
    return YourValidationCode; // return true if field is ok or should be ignored
}, "Please complete A");
然后在规则中使用它:

rules: {
    ....
    field_a: {
        required: false,
        checkA: true
    },
    ....
}
看一看:

jQuery Validate实际上直接支持这一点,使用

您只需更改验证选项,如下所示:

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

就这样

jQuery以条件验证作为函数结果(添加到Ryley的上述注释):


你好,伙计-我的验证工作正常-我正在尝试做的是根据用户选择的内容制定附加规则。e、 g如果用户选中“paypal”复选框,则需要填写名为“paypal\u地址”的字段。如果他们不选择此项,则他们可以跳过此字段,而无需向paypal_地址字段添加有效的电子邮件地址。他使用的是jQuery validator,您可以创建方法,无需创建onClick()事件,因为validate()将处理一切,非常感谢您的链接。现在我知道有一个选择器:filled如果我们使用远程规则,那么这将不起作用。它将只检查所需的属性,但remote将像在正常流中一样工作。是否可以调用所需部分中的函数,并根据条件将其评估为true或false?例如
required:checkCondition()
@SarojSasmal yes-请参阅答案中的文档链接,最后一个示例是您要问的问题,嗯,这是如何与选择选项下拉列表一起工作的???如果指定的下拉列表有值,我需要一个必填项
$('#myform').validate({
    rules: {
        fieldA: {
           required:'#checkA:checked'
        }
    }
});
$("#Form_Id").validate({
    rules: {
        CompletedBy: "required", //straight forward validation of field
        Contact_No: "required",
        Location: { required: noTableRow }//if no table row, make Location mandatory
    }        
});

//checks whether a table row exists
function noTableRow() {
  return $("tr.tr_class").length == 0;
}