我正在尝试动态添加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)*$/ }
这是完整的验证功能:
答案 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});})
});