2

我正在使用 jquery-validate 并且我正在尝试验证两个字段(参与者_adultsparticipats_child)的值是否大于 X(一个数字)。作为一个额外的挑战,第二个字段(participats_child)可能存在也可能不存在,所以如果它不存在,验证应该只考虑第一个字段(participats_adults)。

我有这个html:

<select name="participants_adults" class="valid">
   <option>1</option>
   <option>2</option>
   <option>3</option>
</select>

<select name="participants_child" class="valid">
   <option>0</option>
   <option>1</option>
   <option>2</option>
</select>

到目前为止,我的 jQuery 代码是这样的:

<script>
 $(document).ready(function(){

 $('#booking_form').validate({
    rules: {
      participants_adults: {
        required: {
               depends: function(element) {
                return (parseInt($('[name="participants_adults"]').val()) + parseInt($('[name="participants_child"]').val()) > 2);
                 }
               }
      }
    }
   });
 });

我没有成功实现此验证。有人可以帮忙吗?

提前谢谢了!

4

1 回答 1

2

根据文档创建自定义方法addMethod,而不是条件规则。

jQuery.validator.addMethod("myMethod", function(value, element, params) {
    // your function
    // return false to display the error message
    // return true to pass validation
}, "this is the error message");

函数的参数定义如下:

value
类型:String
已验证元素的当前值

element
类型:
要验证的元素

params
类型:为方法指定的字符串
参数,例如 for min: 5,参数为5,for range: [1, 5]it's[1, 5]


另请参阅这些答案以获取更多示例:

https://stackoverflow.com/a/19096923/594235

https://stackoverflow.com/a/15594795/594235

于 2013-10-25T16:24:38.840 回答