У меня есть форма с прикрепленной картой. Нажатие на карту добавляет скрытые входы в div в форме.
Я хочу, чтобы правило проверки проверяло, есть ли в этом div какие-либо скрытые элементы. До сих пор я мог делать это только с фиктивным элементом, который я должен был удалить вручную перед отправкой формы:
<form action="..." method="post" id="signup">
<!-- ... -->
<div id="zones_selected"><input type="hidden" name="dummy"></div>
<!-- ... -->
</form>
$.validator.methods.zones = function (value, element, param) { return ($zone_holder.find('input[name!=dummy]').length > 0); };
$('#signup').validate({
rules: {
//...
'dummy': 'zones'
},
//...
submitHandler: function(form) { $(form).find('input[name=dummy]').remove(); form.submit(); }
});
Тем не менее, это оставляет желать лучшего для размещения ошибок, так как мой пользовательский метод валидатора, кажется, никогда не вызывает функцию unhighlight
, и я чувствую себя грязно из-за того, что вставил ввод исключительно для проверки формы (не очень ненавязчивый).
Мне бы хотелось, чтобы не было лишних submitHandler
и правила проверки наличия скрытых входов в элементе div с триггером unhighlight
(например, если пользователь нажимает на карту, что создает новый скрытый ввод - исчезнувшее сообщение, сообщающее им об этом, исчезнет).
Какой лучший способ сделать это?