Как удалить проверку jQuery из формы?

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

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

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

12.12.2008 16:28:02
10 ОТВЕТОВ
РЕШЕНИЕ

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

$("#listing")[0].submit();
69
28.06.2009 17:53:17
Это отличный совет. Спасибо.
kolrie 6.09.2013 05:24:12
Действительно, это отличный совет, но он не отвечает на вопрос.
biphobe 27.01.2014 15:51:19
Этот совет не работает вместо удаления проверки jquery, он отправляет форму
Irfan Ashraf 12.06.2016 13:47:13
[0] это элемент массива из формы? Могу ли я использовать как [0,1,3], чтобы отключить эти узлы?
dutraveller 12.10.2016 14:11:45

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

7
12.12.2008 16:36:34
Я отправляю форму с javascript, так что, к сожалению, это не сработает.
Ben Crouse 12.12.2008 16:40:00
К счастью, я не делаю ничего сложного, так что это сработало для меня. Спасибо.
uriDium 4.07.2009 13:15:32
также можно использовать атрибут html5 formnovalidate для элемента submit
Luiz 9.11.2013 16:41:04

Вы можете удалить события узлов с помощью 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();
34
12.12.2008 17:49:59
У меня работал только метод unbind. Использование jQuery 1.3.2 и Validate 1.5.5
JavadocMD 12.08.2009 01:21:35

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


...
jQuery.extend(
          jQuery.fn, 
          {
          removeValidator: function(){
              this.unbind();
              jQuery.removeData(this[0], 'validator'); 
          }
...
2
10.07.2009 15:38:39

Кажется, это работает для меня сейчас:

var form = $('#my_form_id').get(0);
$(form).removeData('validate');
5
25.03.2013 17:11:24
Мех. Теперь я использую метод, упомянутый Jorn выше. Я могу использовать это, когда хочу обойти проверку: <pre> bypassValidator = function () {$ ("# btn-submit"). Bind ('click', function () {$ ('# myForm') [0] .Разместить(); }); } </ pre>
kenitech 19.11.2009 18:21:12
Ваш подход здесь решил немного другую проблему для меня. Я динамически загружаю различные формы через Ajax, и если имя поля было одинаковым, существующая проверка применима к нему, если я сначала не запустил код выше.
Damo 23.08.2010 04:15:35
var form = $('#my_form_id').get(0);
$.removeData(form,'validator');

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

20
26.03.2012 21:04:07
После взлома этого выше необходимо $ (form) .removeData ('validator');
BishopZ 25.03.2013 17:24:08
После этой команды я снова вызвал $ ("form"). Validate (GetSettings ()); Внутри GetSettings я возвращаю только {..., groups: GetValidationGroups (), ...}, что позволило мне динамически изменять группы проверки.
Daniel Katz 10.06.2015 09:51:36

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

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

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

7
17.07.2012 16:24:15
Это сработало очень хорошо для меня. Мне нужно было удалить правила, которые уже были применены, а затем применить меньшее подмножество правил. В моем случае у меня есть кнопка «Отправить» (которая обеспечивает больше обязательных полей) и кнопка «Сохранить» (которая только обеспечивает формат данных). После отправки я получаю всевозможные ошибки проверки полей, а затем могу сохранить, если нет ошибок формата данных. если при сохранении будут какие-то ошибки проверки, то, к сожалению, будут показаны и обязательные ошибки проверки полей, но это достаточно близко для меня. Я попробовал некоторые другие примеры здесь, чтобы избавиться от этого без удачи.
Kirk Liemohn 3.09.2014 19:55:12
Ага. Я был в том же сценарии, что и @KirkLiemohn: несколько кнопок отправки с кодом на стороне сервера, который должен знать, какая из них была нажата. Звонок, .submit()чтобы отправить форму, уничтожил бы эти данные, и ваш путь был единственным, который работал для меня! Спасибо!
anon 8.12.2014 21:52:48

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

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

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

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

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

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

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

jQuery('#form').validate().currentForm = jQuery('#form')[0];
7
23.08.2012 15:01:52
спасибо, это помогло мне сегодня. У меня была форма, которую я отправлял с помощью ajax, а затем очищал все входные данные, чтобы ее можно было использовать снова - при этом валидатор вызывал сообщения об ошибках, как если бы пользователь удалил всю необходимую информацию. Я использую это при отправке перед очисткой формы, чтобы избежать спама пользователю сообщениями «это поле обязательно» :)
totallyNotLizards 30.01.2013 11:43:13
Работает на после того, как попробовал 6 других решений. Почему jQ Validate настолько непредсказуем?
Sebastian Xawery Wiśniowiecki 30.01.2015 11:06:06

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

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

Меня устраивает.

1
2.07.2013 16:07:11
$("#formName").validate().settings.ignore = "*";

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

4
12.12.2016 09:15:43