0

在 jquery.validate 中

我的要求:

仅当检查同一行中的复选框时,才能验证输入文本!

$("[name='ck']").click(function () {
        var text = $(this).parent().parent().find("[name='t']");
        if ($(this).attr("checked") == "checked") {
            text.addClass("required");
        } else {
            text.removeClass("required");
        }
    });

代码没问题!但是当我将规则更改为时{required:true,number:true,max:5},它不起作用!

只有第一个被选中的复选框的输入文本才会被验证!单击第二个复选框时,将不会验证相关的输入文本。

所以

addClass("{required:true,number:true,max:5}");

是动态添加/删除验证规则的方法是不合法的,但为什么它只会工作一次!

4

1 回答 1

0

您可能希望使用depends回调来动态选择是否需要该规则。

$(".selector").validate({
  rules: {
    contact: {
      required: true,
      email: {
        depends: function(element) {
          return $("#contactform_email:checked")
        }
      }
    }
  }
});

这个例子是从jquery 验证页面中提取的

于 2013-06-28T19:33:32.167 回答