У меня есть карта 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();
},
// ...
... но это, похоже, создает бесконечный цикл, и мой браузер блокирует выполнение сценария.Что я делаю не так?