使用add / removeClass动态添加/删除验证规则({required:true,max:.........})

时间:2013-06-28 07:51:07

标签: jquery jquery-validate

在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}");

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

1 个答案:

答案 0 :(得分:0)

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

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

此示例来自jquery validation page