Проверьте форму по событию Click с помощью валидатора jQuery. - PullRequest
5 голосов
/ 16 сентября 2011

Я использую jQuery validate для проверки ввода.Мой код:

 $('#button').click( function() {       
    $("#form").validate({              
        rules: {
            phone: {
                required: true,
                number: true,
                rangelength: [7, 14]
            }
        }
    }); 
});

И HTML:

<form id="form" name="form" method="post" action="">
 <input id="phone" name="phone" class="required" type="text" />
 <div class="button" id="send_b">Send</div>
 </form>

Этот код не работает.Если я добавлю эту строку jQuery

$("#form").submit();  

внутри события click, это сработает.Но я не хочу отправлять форму, поэтому я хочу просто выполнить проверку по клику.

Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

14 голосов
/ 16 сентября 2011

Просто добавьте .form(), чтобы вручную запустить проверку (поведение по умолчанию ожидает события отправки):

$('#button').click( function() {       
  $("#form").validate({              
    rules: {
      phone: {
        required: true,
        number: true,
        rangelength: [7, 14]
      }
    }
  }).form(); 
});
0 голосов
/ 16 сентября 2011

Используйте метод формы form() метод с вашим событием клика

0 голосов
/ 16 сентября 2011

Ваш код привязывает функцию к событию click кнопки.То, что вы делаете, говорит: «когда нажата эта кнопка, примените проверку формы к форме».

Это неправильный способ использования плагина проверки (я предполагаю, что вы используете это плагин проверки).Вместо этого вы просто выполняете метод validation() непосредственно над элементом form;плагин заботится о событии submit.

Итак, избавьтесь от привязки события click.

...