jQuery - 动态添加验证规则?

时间:2010-06-04 02:49:40

标签: jquery

我正在尝试动态添加jQuery验证器规则但它无法正常工作。它不会引发任何错误,但不会触发验证。

这是js:

$(document).ready(function () {

    $.validator.addMethod("TIME", function (value, element) {
        var re = new RegExp(regexp);
        console.debug("Validating " + value);
        return this.optional(element) || re.test("^*(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M)*$").test(value);
    }, "Time is invalid: Please enter a valid time.");

$("input[id *= '_timepicker']").rules("add", "TIME");

});

知道什么是错的吗?

编辑:

现在我收到错误:无效量词*(1 [0-2] | [1-9]):[0-5] [0-9] (a | p | A | p)(M | M) $

以下是相关的js:

rules:{"special.Hours.FridayHours1.close":{ regExp: /^*(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M)*$/ }

这是完整的验证功能:

http://pastebin.com/YRday2Mv

2 个答案:

答案 0 :(得分:3)

您的语法稍微偏离,您需要传递一个对象而不是字符串,如下所示:

$("input[id*='_timepicker']").rules("add", {"TIME": true });

You can find the .rules() documentation with more examples here

答案 1 :(得分:-1)

$(function() {
      $('#order_form_id').validate();
      $("input[id*='_quantity']").each(function () {$(this).rules("add", {required:true,zznum:true});})
    });