Несколько плагинов для валидации jQuery - PullRequest
1 голос
/ 01 октября 2010

У меня возникли некоторые трудности при использовании плагина jQuery Validator . У меня есть список флажков с различными name атрибутами, и я не могу понять, как обеспечить проверку хотя бы одного из них. Все, что я нахожу в Google, похоже, работает только тогда, когда атрибут name одинаков.

Вот пример кода (обновлено) :

<ul id="email_lists">
    <li>
        <input name="checkbox1" type="checkbox" /> List 1
    </li>
    <li>
        <input name="checkbox2" type="checkbox" /> List 2
    </li>
    <li>
        <input name="checkbox3" type="checkbox" /> List 3
    </li>
    <li>
        <input name="checkbox4" type="checkbox" /> List 4
    </li>
</ul>

Я хочу убедиться, что хотя бы один из них проверен. К сожалению, я не могу сделать имена такими же, как это форма, которая отправляется в стороннее приложение для маркетинга электронной почты, и она ожидает определенных атрибутов name для этих флажков.

Обновление

Я знаю, как это сделать с помощью простого jQuery, но я бы предпочел использовать плагин jQuery Validator , поскольку именно так выполняется вся другая проверка на странице.

Я могу сгруппировать эти флажки с помощью jQuery, сказав $('#email_lists li');, но я не совсем уверен, как использовать что-то подобное, и сказать плагину jQuery Validator, чтобы использовать это как группу.

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Предполагая, что вы можете дать флажкам имя класса (jQuery необходимо что-то для работы):

<input class="validationGroupOne" name="checkbox1" type="checkbox" />
<input class="validationGroupOne" name="checkbox2" type="checkbox" />
<input class="validationGroupOne" name="checkbox3" type="checkbox" />
<input class="validationGroupOne" name="checkbox4" type="checkbox" />

Вы должны иметь возможность подключить селектор классов .validationGroupOne вместо обычного атрибута name.

0 голосов
/ 10 января 2013

Это было мое решение: -)

Использование:

<div id="list">
<input name="chkbox" type="checkbox" />
<input name="chkbox" type="checkbox" />
<input name="chkbox" type="checkbox" />
<input name="chkbox" type="checkbox" />
</div>

<input type="hidden" name="the_real_field_name" />

Затем в jquery проверьте блок плагина:

rules : {
       chkbox: "required"
        },

Затем сохраните значения в виде массива в одном скрытом поле, например:

function updateInput() {
    var allVals = [];
    $('#list :checked').each(function() {
        allVals.push($(this).val());
    });
    $('#the_real_field_name').val(allVals);
}
$(function() {
    $('#list input').click(updateInput);
    updateInput();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...