Эффективное создание правил для больших форм - PullRequest
1 голос
/ 25 августа 2010

Я использую плагин jQuery validate для проверки формы с большим количеством полей:

<td><input name="first_name0"></td>
<td><input name="last_name0"></td>
<td><input name="age0"></td>
<td><input name="first_name1"></td>
<td><input name="last_name1"></td>
<td><input name="age1"></td>
<td><input name="first_name2"></td>
<td><input name="last_name2"></td>
<td><input name="age2"></td>
...
<td><input name="first_name200"></td>
<td><input name="last_name200"></td>
<td><input name="age200"></td>

Какой лучший способ добавить правила проверки для всех идентичных полей? В настоящее время я добавляю такие правила, но после 100 строк это очень медленно.

$("input[name*=age]").each(function(i) {
    $(this).rules("add", {
        digits: true
    });
});

$("input[name*=first_name], input[name*=last_name]").each(function(i) {
    $(this).rules("add", {
        digits: true
    });
});

1 Ответ

3 голосов
/ 25 августа 2010

Нет необходимости в цикле, он будет работать с набором запросов, например:

$("input").filter("[name*=age], [name*=first_name], [name*=last_name]")
          .rules("add", {
             digits: true
          });

Предоставление им класса было бы немного более удобным, например:

<td><input name="first_name0" class="digits"></td>
<td><input name="last_name0" class="digits"></td>
<td><input name="age0" class="digits"></td>

Тогда вы можете сделать это:

$("input.digits").rules("add", {
  digits: true
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...