Требуется ли для плагина проверки Jquery тег формы? - PullRequest
7 голосов
/ 21 января 2010

Я хочу проверить некоторые текстовые поля asp.net с помощью плагина jQuery Validation, который находится по адресу http://docs.jquery.com/Plugins/Validation, но похоже, что элементы должны находиться между тегом формы. Если бы у меня было всего несколько элементов, я бы вряд ли назвал это формой, поэтому я бы предпочел, чтобы они не были заключены в элемент формы. Это можно обойти? Кроме того, если у меня есть две кнопки в форме, кнопка отмены и кнопка отправки, и я хочу, чтобы форма проверялась только при нажатии кнопки отправки, но не кнопки отмены, как это достигается?

Ответы [ 2 ]

2 голосов
/ 21 января 2010

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

Если элементы не находятся внутри тега формы, то это не является допустимым документом HTML, поэтому поведение в скрипте может стать затруднительным в зависимости от того, как браузер работает с некорректным HTML.

Большинство браузеров неявно создают форму, но теперь вы не можете контролировать ее поведение. По умолчанию обычно используется форма пост-действия, нацеленная на URL запрашиваемой страницы.

Проблема в том, что вы, вероятно, понятия не имеете, какой селектор использовать в JQuery для получения ссылки на форму ... но я полагаю, что $("form") сработает.

подтвердить, когда нажата кнопка отправки, но не кнопка отмены

Плагин перехватывает и запускает событие отправки формы. Обычно кнопки отмены - это HTML-элементы ввода с атрибутом type, установленным на «reset»:

<input type="reset" value="cancel" />

Кнопка сброса типа не приведет к отправке формы, и это не вызовет проверку.

Если вы используете кнопку другого типа, убедитесь, что onclick даже возвращает false. Это отменяет действие отправки формы, но все же позволяет вам запускать собственный javasctipt при нажатии кнопки.

2 голосов
/ 21 января 2010

Плагину jquery validate требуется элемент формы для работы, поэтому поля формы (независимо от того, сколько их) должны содержаться внутри формы.

Вы можете указать плагину проверки, чтобы он не работал при отправке формы, а затем вручную проверить форму, когда нажата правильная кнопка отправки.

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


$(document).ready(function() {
  var form = $("form");

  form.validate({
    onsubmit: false,
  });

  //Validate form only if validation submit button is clicked
  //Allows cancel submit buttons to function properly
  $('.validate', form).click(function() {
    if (form.valid()) {
      form.submit();
    }
    else {
      form.validate().form();
    }
  });

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