Ответ 1
Запустите метод отправки DOM, чтобы пропустить проверку:
$("#listing")[0].submit();
Я использую плагин проверки jQuery для проверки формы, и я хотел бы удалить проверку и отправить форму, если нажата некоторая ссылка.
Я представляю форму с javascript как jQuery('form#listing').submit()
, поэтому я должен удалить правила/функцию проверки с помощью javascript.
Проблема в том, что я не могу понять, как это сделать. Я пробовал такие вещи, как jQuery('form#listing').validate({});
и jQuery('form#listing').validate = null
, но не повезло.
Запустите метод отправки DOM, чтобы пропустить проверку:
$("#listing")[0].submit();
Вы можете удалить события узлов с помощью unbind:
jQuery('form#listing').unbind('submit'); // remove all submit handlers of the form
Что вы, вероятно, ищете, так это то, что плагин проверки может также отменить назначение из события отправки:
jQuery('form#listing').validate({
onsubmit : false
});
Для обоих из них вы можете следить за вызовом .submit()
, чтобы отправить форму:
jQuery('form#listing').unbind('submit').submit();
var form = $('#my_form_id').get(0);
$.removeData(form,'validator');
Действительно работает.
Вы можете добавить класс css отмены к элементу (кнопка, ввод), чтобы он пропускал проверку
Вы также можете использовать общедоступные функции "правила" следующим образом:
$('input, select, textarea').each(function() {
$(this).rules('remove');
});
Что я использую;)
Я не нашел ничего полезного, если вы хотите включить/выключить проверку форм (например, различные проверки для типов платежей...)
Что я должен был сделать (это нехорошее исправление, но оно действительно работает)
Настройте свою проверку:
jQuery('#form').validate();
Отключение формы:
jQuery('#form').validate().currentForm = '';
Включение формы снова:
jQuery('#form').validate().currentForm = jQuery('#form')[0];
Теперь это работает для меня:
var form = $('#my_form_id').get(0);
$(form).removeData('validate');
$("#formName").validate().settings.ignore = "*";
Refer: https://github.com/jzaefferer/jquery-validation/issues/725
Недавно я обновил до 1.5.5 валидатора Jörn script, и функция removeValidator устарела.
...
jQuery.extend(
jQuery.fn,
{
removeValidator: function(){
this.unbind();
jQuery.removeData(this[0], 'validator');
}
...
Для всех тегов ввода формы:
$('#myform').validate().settings.ignore = '.valid';
$('input').addClass('valid');
Это работает для меня.