Проверка jQuery: как проверить элемент, не являющийся формой?

У меня есть форма, к которой прикреплена карта. Щелчок по карте добавляет скрытые входные данные к 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 (например, если пользователь щелкнет на карте - что создает новый скрытый ввод - сообщение, которое я показываю им, исчезнет).

Как лучше всего это сделать?

10
задан neezer 17 September 2010 в 13:37
поделиться