jQuery.validate и проверка по классам - PullRequest
2 голосов
/ 25 июня 2011

Можно ли проверить целый класс элементов в форме, используя jQuery.validate? Я знаю, что вы можете назначать правила элементам по имени, но можете ли вы выбрать эти элементы по классу? У меня есть форма на моем сайте, которая не нуждается ни в чем, кроме required правил, и немного неудобно печатать КАЖДОЕ отдельное поле, особенно при работе с объектом messages!

Вот мой код:

<div id="al_address" class="al_account-settings left">
<h2 class="gold alternate1">ADD A NEW ADDRESS</h2>
<form method="POST" action="#" >
    <table>
        <tr>
            <th><label for="name">* address name</label></th>
            <td><input type="text" class="al_required" name="name"></td>
        </tr>
        <tr>
            <th><label for="first_name">* first name</label></th>
            <td><input type="text" class="al_required" name="firstName"></td>
        </tr>
        <tr>
            <th><label for="last_name">* last name</label></th>
            <td><input type="text" class="al_required" name="lastName"></td>
        </tr>
        <tr>
            <th><label for="address1">* street address</label></th>
            <td><input type="text" class="al_required" name="address1"></td>
        </tr>
        <tr>
            <th><label for="address2">address 2</label></th>
            <td><input type="text" name="address2"></td>
        </tr>
        <tr>
            <th><label for="zip">* zip</label></th>
            <td><input type="text" name="zip" class="al_required"></td>
        </tr>
        <tr>
            <th><label for="city">* city</label></th>
            <td><input type="text" class="al_required" name="city"></td>
        </tr>
        <tr>
            <th><label for="state">* state</label></th>
            <td>
                <select name="state" class="al_required">
                    <option value="">Select a State</option>
                </select>
            </td>
        </tr>
        <tr>
            <th><label for="country">* country</label></th>
            <td>
                <select name="country" class="al_required">
                    <option value="US">United States</option>
                </select>
            </td>
        </tr>
        <tr>
            <td colspan="2" class="al_buttons">
                <button type="reset">CANCEL</button>
                <button type="submit" class="last">ADD</button>
            </td>
        </tr>
    </table>
</form>
<script type="text/javascript" charset="utf-8">
    $('#al_address form').validate({
        rules: {
            name: 'required', first_name: 'required', last_name: 'required', address1: 'required', zip: 'required', city: 'required', state: 'required', country: 'required'
        },
        messages: {
            name: '- Required fields were left blank.'
        }
    });
</script>

В нынешнем виде это покажет правильное сообщение для name, но ничего больше. Можно ли с помощью jQuery.validate просто установить «обязательное» правило для класса и использовать эту ссылку на класс в messages для отображения унифицированного сообщения для обязательных полей в форме?

Ответы [ 2 ]

2 голосов
/ 25 июня 2011

Плагин предоставляет метод для этого, см. Документацию для этого .Тогда вы можете сделать:

$(".myClass").rules("add", {
 required:true
});

Найти больше способов и вариантов здесь .

1 голос
/ 25 июня 2011

Вы можете добавить class = "required" для каждого элемента управления, чтобы получить обязательную проверку поля, т.е.

<tr>
    <th><label for="name">* address name</label></th>
    <td><input type="text" class="required" name="name"></td>
</tr>

<script type="text/javascript" charset="utf-8">
    $('#al_address form').validate({

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