2010-06-04 2 views
1

Я пытаюсь добавить правило валидатора jQuery динамически и он не работает. Он не вызывает никаких ошибок, но не вызывает проверку.jQuery - добавить правило валидатора динамически?

Вот в ЯШ:

$(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"); 

}); 

Любая идея, что случилось?

EDIT:

Сейчас я получаю сообщение об ошибке: недопустимых кванторных * (1 [0-2] | [1-9]): [0-5] [0-9] (а | р | | P) (т | м) $

Вот соответствующие ЯШ:

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

Вот полная функция Validate:

http://pastebin.com/YRday2Mv

ответ

3

Ваш синтаксис выключен только немного, вам нужно передать ему объект вместо строки, например:

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

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

+0

Благодарим за быстрый ответ, но это также не вызывает проверки. – Justin

+1

@Justin - это не вызовет его, вам нужно запустить '.valid()' to * actual * validate, это просто добавляет правило, когда вы ожидаете его проверки? Кроме того, перед запуском вы запускаете метод '.validate()'? сначала он должен * быть *, это просто добавляет * добавочные * правила. –

+0

Я никогда не звонил .valid(), однако я попытался добавить правило к моей функции .validate() вместо динамического добавления правила, и теперь получаю недопустимую ошибку квантификатора. – Justin

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

Пожалуйста, старайтесь избегать просто демпинг-код в качестве ответа и попытаться объяснить, что он делает и почему. Ваш код может быть не очевидным для людей, у которых нет соответствующего опыта в кодировании. Измените свой ответ, чтобы включить [пояснение, контекст и попытаться упомянуть любые ограничения, допущения или упрощения в вашем ответе.] (Https://stackoverflow.com/help/how-to-answer) – Frits

Смежные вопросы