Форма отправки jQuery при нажатии флажка

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

$(":checkbox").click(function() {
  $(this).closest("form").submit();
});

Приведенный выше код работает нормально, но перестает работать после первого клика. Как мне сделать так, чтобы приведенный выше код работал, даже если пользователь нажимает флажок более одного раза?

ИЗМЕНИТЬ:

Я заменяю содержимое формы (включая флажки) при отправке формы.


person LanguagesNamedAfterCofee    schedule 17.07.2011    source источник
comment
что именно происходит во 2-м клике? Я считаю, что это может быть проблема блокировки всплывающих окон...   -  person Pablo Fernandez    schedule 18.07.2011
comment
он должен работать и при втором щелчке, есть ли какие-либо ошибки или другие уведомления?   -  person Igoris Azanovas    schedule 18.07.2011
comment
При втором клике вообще ничего не происходит   -  person LanguagesNamedAfterCofee    schedule 18.07.2011
comment
Каков эффект запроса AJAX? Что-то на странице обновляется или заменяется?   -  person s4y    schedule 18.07.2011
comment
@Sidnicious Я заменяю содержимое формы (включая флажки)   -  person LanguagesNamedAfterCofee    schedule 18.07.2011
comment
@Languages ​​Затем событие было привязано к флажку старый, а не к новому. Вам нужно повторно привязать обработчик событий после перезагрузки формы или использовать .live или .delegate для привязки обработчика событий к ближайшему родительскому родительскому элементу формы, который не заменяется.   -  person s4y    schedule 18.07.2011


Ответы (1)


person    schedule
comment
почему вы думаете, что это сработает? Я не вижу проблемы, которую может решить live. Кроме того, вы пропустили символ кавычки - person Pablo Fernandez; 18.07.2011
comment
Кроме того, вам необходимо указать имя события для live, чтобы это было синтаксически правильным. - person Andrew Whitaker; 18.07.2011
comment
Ох, долгий день - исправлен код. В зависимости от того, как отправляется его форма, у меня были проблемы в прошлом с потерей привязки событий, и применение перспективного наблюдателя событий, такого как live или делегат, решило проблему. - person AlienWebguy; 18.07.2011
comment
@AlienWebguy: Похоже, этот ответ на самом деле правильный, судя по последнему комментарию ОП, +1. - person Andrew Whitaker; 18.07.2011