Проверка JQuery не работает должным образом - PullRequest
0 голосов
/ 28 марта 2011

Я пытаюсь проверить четыре разных поля. Последние два имеют правильное поведение валидации, но первые два не работают (они должны быть только обязательными). Если я нажимаю «Отправить», ничего не вводя, только в двух последних полях отображаются ошибки.

Вот вопрос jQuery:

        $("#advertisePost").validate({
            rules: {
                advRetailerName: {
                    required: true
                },
                advName: {
                    required: true
                },
                advPhone: {
                    required: true,
                    phoneUS: true
                },
                advEmail: {
                    required: true,
                    email: true
                }           
            },
            messages:{
                advRetailerName: {
                    required: "This is required."
                },
                advName: {
                    required: "This is required."
                },
                advPhone: {
                    required: "This is required.",
                    phoneUS: "This is an invalid phone number."
                },
                advEmail: {
                    required: "This is required",
                    email: "This is an invalid email"
                }
            }
        });

Вот сама фактическая форма:

 <form action="php/advertisePost.php" method="POST" id="advertisePost">
<table>
<tr>
    <td>Retailer Name</td><td><input type="text" id="advRetailerName" name="advRetailerName" class="required"/><br/><label for="advRetailerName" class="error" generated="true"></label></td>
</tr>
<tr>
    <td>Your Name</td><td><input type="text" id="advName" name="advName" class="required"/><br/><label for="advName" class="error" generated="true"></label></td>
</tr>
<tr>
    <td>Phone Number</td><td><input type="text" id="advPhone" name="advPhone" class="required"/><br/><label for="advPhone" class="error" generated="true"></label></td>
</tr>
<tr>
    <td>Email Address</td><td><input type="text" id="advEmail" name="advEmail" class="required"/><br/><label for="advEmail" class="error" generated="true"></label></td>
</tr>
</table>
    <input type="button" value="Submit" id="advSubmit"/>
</form>

Я даже пытался добавить требуемый класс в каждое поле. Я знаю, что это не проблема обработки сообщений. Первые два поля просто не следуют правилам проверки. Любая помощь?

Ответы [ 3 ]

1 голос
/ 28 марта 2011

попробуйте вот так

$.validator.addClassRules({
      advPhone: {
          required: true,
          phoneUS: true
      },
      advEmail: {
          required: true,
          email: true
      }
});

$("#advertisePost").validate();

, затем добавьте класс, необходимый для первых двух

, в качестве альтернативы вы можете просто сделать строку проверки и добавить классы по электронной почте и указать два последних

0 голосов
/ 28 марта 2011

Похоже, ошибка в плагине проверки. Возможно, он не понимает назначение правила сложного стиля, когда вы запрашиваете только «обязательный» параметр? Вы пробовали простой способ:

rules: {
    advRetailerName: "required",
    (...)
}
0 голосов
/ 28 марта 2011

Если вы просто хотите проверить, что первые два поля являются обязательными, то вы можете установить class = "required" в их соответствующих полях ввода и установить advRetailerName: "required" в вашем jquery.Вот документация для проверки: http://docs.jquery.com/Plugins/Validation

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