Плагин проверки jQuery не проверяет поле выбора - PullRequest
1 голос
/ 28 февраля 2012

У меня проблемы с получением jquery.validation.js для проверки поля выбора. Он работает с вводом текста, но не отображает сообщение об ошибке для выбора. Если я выполняю проверку на ввод текста, он отправляет. Кто-нибудь видит, чего мне здесь не хватает?

<form name="consumerRegistration" id="consumerRegistration" action="" method="post">
    <label for="name" class="baseline-10">Full Name</label>
    <input type="text" name="name" id="name" class="required" placeholder="John Doe" min-length="2"/>
    <label for="email" class="baseline-10">Email</label>
    <input type="text" name="email" id="email" class="required email" placeholder="jdoe@yahoo.com"/>
    <label for="company" class="baseline-10">Company</label>
    <input type="text" name="company" id="company" placeholder="ie. Yahoo"/>
    <select name="country" id="country" class="required" required="required">
        <option selected="" val="" disabled="disabled">Country</option>
        <option val="United States">United States</option>
        <option val="Canada">Canada</option>
    </select>
    <a href="javascript:document.void(1);" title="Register" class="cta"><span>Register</span></a>

(function($){
if($('form#consumerRegistration').length){
    $('input').placeholder();
    $('form#consumerRegistration').find('a').on('click', function(e){
        e.preventDefault();
        if($('form#consumerRegistration').valid()){
            $('form#consumerRegistration').submit();
        } else {
            return false;
        }
    });
}
})(jQuery);

Если я пропустил решение где-то еще на сайте, клянусь, я посмотрел внимательно. :)

Плагин от http://bassistance.de/jquery-plugins/jquery-plugin-validation/.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Хорошо, ваша проблема в том, что вы на самом деле не используете корректную проверку jquery.То, что вам нужно сделать, выглядит примерно так:

Сначала настройте проверку на document.ready, если вы этого не сделаете, она не проверяет форму другим способом:

$('form#consumerRegistration').validate(...//options here

Затем создайте событие click для ваших a элементов, которые просто отправляют форму (validate выполнит свою работу)

$('form#consumerRegistration').find('a').on('click', function(e){
    $('form#consumerRegistration').submit();
});

Наконец, причина, по которой ваш выбор не рассматриваетсяправильно, что вы не указали его атрибуты правильно.Проще говоря, val - это не тот атрибут, который вам нужен, value.Так что просто измените это во всех опциях:

    <option selected="" value="" disabled="disabled">Country</option>
    <option value="United States">United States</option>
    <option value="Canada">Canada</option>

Вот оно работает: http://jsfiddle.net/ryleyb/TTpSB/

0 голосов
/ 23 июля 2012

Плагин Jquery Validation требует, чтобы первый параметр select был пустым для их проверки. Пример: окно выбора должно выглядеть следующим образом:

<select name="country" id="country" class="required">
        <option></option>
        <option val="United States">United States</option>
        <option val="Canada">Canada</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...