Проверка jQuery: удалить элемент ПОСЛЕ проверки перед ДО? - PullRequest
0 голосов
/ 09 сентября 2010

У меня есть карта SVG города, которая при нажатии создает скрытые элементы в элементе div в моей форме.

Я использую jQuery Validation Plugin для проверки моей формы.

Чтобы убедиться, что пользователь нажал на область карты, я подумал создать фиктивный скрытый элемент внутри, где находятся обычные скрытые элементы, и наложить на него правило проверки.Я написал свое собственное правило проверки для проверки количества скрытых элементов (указывая, что пользователь щелкнул где-то на карте).Это правило таково:

$.validator.methods.zones = function (value, element, param) {
   return ($('#search_form #zone-selectors input').length > 1); // 1 instead of 0 to account for the dummy element
};

<div id="zone-selectors">
  <input type="hidden" name="dummy">
</div>

Однако я не могу допустить, чтобы этот фиктивный элемент был отправлен вместе с остальной частью формы;Мне нужно удалить его ПОСЛЕ того, как форма была проверена, но ДО того, как форма будет отправлена.Естественно, я подумал использовать опцию submitHandler для validate():

// ...
submitHandler: function(form) {
   $(form).find('input[name=dummy]').remove();
   $(form).submit();
},
// ...

... но это, похоже, создает бесконечный цикл, и мой браузер блокирует выполнение сценария.Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 09 сентября 2010

Для submitHandler требуется настройка, например:

submitHandler: function(form) {
   $(form).find('input[name=dummy]').remove();
   form.submit();
}

Вызов триггера jQuery .submit() снова вызывает проверку и бесконечный цикл ... вы хотитевызовите нативную .submit() функцию здесь.

0 голосов
/ 01 мая 2014

Это, похоже, сработало для меня, когда вышеприведенный ответ не сработал. Возможно, это связано с версиями jQuery и jQuery Validation.

submitHandler: function(form) {
   $('input[name=dummy]', form).remove();
   form.submit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...