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