Плагин проверки JQuery: пользовательские правила с динамическим идентификатором элемента - PullRequest
1 голос
/ 19 апреля 2011

Я попытался применить пользовательское правило проверки с использованием jQuery, как показано ниже

<script type="text/javascript">
$(document).ready(function(){
jQuery.validator.addMethod("notaccept", function(value, element, param) {
return value.match(new RegExp("." + param + "$"));
}, "<img src='../template/images/error.gif' alt='Only alphabet allowed.'>");

$("#frm1").validate({
  rules: {
    $('input[id^=txt_field]'): { 
        notaccept: "[a-zA-Z]+" }        
  }
});
});
</script>

Проблема в том, что использование селектора префикса элемента в приведенном выше коде не работает. Я генерирую несколько полей в формате txt_field11, txt_field12 и т. Д. Динамически.

Можно ли применить вышеуказанную проверку к нескольким элементам, как в моем случае?

1 Ответ

2 голосов
/ 20 апреля 2011

Я не уверен, является ли опция rules достаточно мощной, чтобы принять произвольный селектор для элементов и применить правило проверки для этих элементов.

Однако вы можете добавить правила после инициализации валидатора:

$.validator.addMethod("notaccept", function(value, element, param) {
    return value.match(new RegExp("^" + param + "$"));
}, "Only alphabet allowed");

$("#form").validate({...});

$('input[id^="txt_field"]').each(function() {
    $(this).rules("add", { notaccept: "[a-zA-Z]+" });
});

Вызов .each был необходим, потому что казалось, что валидатор только .rules() вызывает первый соответствующий элемент.

Вот рабочий пример: http://jsfiddle.net/fDAQU/

Я еще немного покопаюсь и посмотрю, есть ли способ добавить правила в объект параметров, который вы изначально передаете в валидатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...