Как удалить проверку jQuery из формы? - PullRequest
39 голосов
/ 12 декабря 2008

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

Я отправляю форму с javascript, как jQuery('form#listing').submit(), поэтому я должен удалить правила / функцию проверки с помощью javascript.

Проблема в том, что я не могу понять, как это сделать. Я пробовал такие вещи, как jQuery('form#listing').validate({}); и jQuery('form#listing').validate = null, но безуспешно.

Ответы [ 10 ]

68 голосов
/ 28 июня 2009

Запустить метод отправки DOM, чтобы пропустить проверку:

$("#listing")[0].submit();
34 голосов
/ 12 декабря 2008

Вы можете удалить события узлов с помощью unbind :

jQuery('form#listing').unbind('submit'); // remove all submit handlers of the form

Что вы, вероятно, ищете, так это то, что плагин валидации также может отсоединиться от события submit:

jQuery('form#listing').validate({
   onsubmit : false
});

В обоих случаях вы сможете позвонить на .submit() и отправить форму:

jQuery('form#listing').unbind('submit').submit();
19 голосов
/ 26 марта 2012
var form = $('#my_form_id').get(0);
$.removeData(form,'validator');

действительно работает.

7 голосов
/ 17 июля 2012

Вы также можете использовать публичную функцию "правил" следующим образом:

$('input, select, textarea').each(function() {
    $(this).rules('remove');
});

Вот что я использую;)

7 голосов
/ 12 декабря 2008

Вы можете добавить класс отмены CSS к элементу (кнопка, ввод), чтобы он пропускал проверку

6 голосов
/ 23 августа 2012

Я не нашел ни одного другого полезного способа, если вы хотите включить / отключить проверку форм (например, другую проверку для типов платежей ...)

Что я должен был сделать (это не очень хорошее решение, но оно работает)

Настройка проверки:

jQuery('#form').validate();

Отключение формы:

jQuery('#form').validate().currentForm = '';

Повторное включение формы:

jQuery('#form').validate().currentForm = jQuery('#form')[0];
5 голосов
/ 10 июля 2009

Мне кажется, это работает сейчас:

var form = $('#my_form_id').get(0);
$(form).removeData('validate');
3 голосов
/ 12 декабря 2016
$("#formName").validate().settings.ignore = "*";

См .: https://github.com/jzaefferer/jquery-validation/issues/725

2 голосов
/ 10 июля 2009

Недавно я обновил до 1.5.5 сценария проверки Jörn, и функция removeValidator устарела.


...
jQuery.extend(
          jQuery.fn, 
          {
          removeValidator: function(){
              this.unbind();
              jQuery.removeData(this[0], 'validator'); 
          }
...
1 голос
/ 02 июля 2013

Для ввода всех тегов формы:

$('#myform').validate().settings.ignore = '.valid';
$('input').addClass('valid');

Это работает для меня.

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