jQuery - Validate () и группировка похожих элементов формы - PullRequest
2 голосов
/ 11 июня 2009

У меня есть следующая форма:

http://fuzzysiberians.com/app4.cfm

Если номер социального страхования отсутствует, мое сообщение об ошибке отображается после каждого текстового поля. Есть ли способ сгруппировать эти сообщения об ошибках так, чтобы рядом было 3 текстовых поля, а затем отображалось только одно сообщение об ошибке?

Ответы [ 2 ]

6 голосов
/ 11 июня 2009

Вместо того, чтобы иметь 3 разных поля для номера социального страхования, я бы использовал одно поле, которое маскируется для формата ### - ## - ####.

После этого единичное правило проверки может попасть в одно поле ввода.

Плагин ввода маски jQuery

   $("#ssn").mask("999-99-9999");

Вот пример кода, использующий одно поле для SSN вместе с плагином проверки и маскированным входным плагином ...

<form id="myForm">
<fieldset>
    <legend>My Sample Form</legend>
    <label><strong>Name:</strong></label><br />
    <input name="name" id="name" />
    <br />
    <label><strong>SSN:</strong></label><br />
    <input name="ssn" id="ssn" />
    <br />
    <input class="submit" type="submit" value="submit" />
</fieldset>
</form>

<script language="javascript">
    jQuery(function($) {
        $("#ssn").mask("999-99-9999");
        // validate signup form on keyup and submit
        $("#myForm").validate({
            rules: {
                name: "required",
                ssn: "required",
            },
            messages: {
                name: "Please enter your name!",
                ssn: "Please enter your ssn!"
            }
        });

    });
</script>
0 голосов
/ 11 июня 2009

Почему бы не иметь SSN в качестве одного поля? В настоящее время у вас есть 3 отдельных текстовых поля для каждой части ssn.

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

...