我试图动态添加一个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)*$/ }
下面是完整的验证功能:
感谢您的快速响应,但这并不会触发验证。 – Justin 2010-06-04 02:54:34
@Justin - 这不会触发它,你需要运行'.valid()'*实际*验证,这只是增加了规则,你希望什么时候验证它?另外,你有没有在这之前运行'.validate()'方法?它*必须*首先被调用,这只是增加了*额外的*规则。 – 2010-06-04 02:56:41
我从来没有调用.valid(),但是我尝试将规则添加到我的.validate()函数中,而不是动态添加规则,现在我得到一个无效的量词错误。 – Justin 2010-06-04 03:18:02