JQuery найти вход по классу для проверки - PullRequest
0 голосов
/ 12 ноября 2011

Я использую плагин проверки jquery для проверки формы. У меня форма разбита на вкладки, и вы можете перейти к следующей вкладке только после нажатия следующей кнопки. Во время события onclick для следующей кнопки я хотел бы убедиться, что на текущей вкладке нет ошибок.

Вкладки помечены классом form_group. HTML-вкладка по умолчанию выглядит так:

<div id="tab-1" class="form_group">
    <div>
      <label for="name">Your Name:</label>
      <input id="ins_name" type="text" name="name"  maxlength="40" />       
    </div>

    <a class="next-tab mover" rel="2" href="#">Next Step »</a>
</div>

Как только оно подтверждено событием onfocusout, входу присваивается класс «valid» или «error»

Я пробовал многочисленные методы, чтобы попытаться выяснить при нажатии на кнопку следующей вкладки, есть ли на текущей вкладке ввод с классом «error», но не смог выяснить это.

Вот моя последняя попытка.

 $('.next-tab, .prev-tab').click(function() {
    if ($(this).find('input.error')) {
               alert('error present');
               return false;
    }

    $tabs.tabs('select', $(this).attr("rel"));
       return false;
 });

Может кто-нибудь помочь мне с сообщением, имеет ли div ввод с этой ошибкой. Одна из моих проблем заключается в том, что $ this использует элемент .next-tab. Я попытался выбрать ближайший класс "form_group" без удачи либо.

1 Ответ

1 голос
/ 12 ноября 2011

Помогает, если вы публикуете текущее, нежелательное поведение скрипта (например, он меняет вкладки, даже если есть ошибки / он никогда не меняет вкладки, даже если поля действительны).

В любом случае, я вам верюхотите что-то вроде этого:

$('.next-tab, .prev-tab').click(function(e) {

  if ($('.form_group input.error').length > 0) {
    alert('error present');
    e.preventDefault();
  }

Обратите внимание, что .preventDefault() обычно предпочтительнее return false для предотвращения поведения события по умолчанию:

http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

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