2012-03-11 3 views
1

я пытаюсь связать тыс заполните событие из формы, не ВСЕГДА быть в Доме, так что я пытаюсь с .on()используя(), чтобы вызвать из заполните

$('body').on("form","submit", function(e){}) 

но FireBug бревен

$("body").on is not a function 
[Parar en este error] 

$('body').on("form","submit", function(e){ 

пытался также

$(document).on("form","submit", function(e){}) 
+3

Вы используете JQuery 1,7 или более поздней версии? Загружается ли jQuery при запуске этого кода? Вам также нужно поменять «форму» и «отправить». – Niklas

+0

Возможно, вы используете старую версию jQuery, и вам также нужно изменить порядок селектора и события. –

+0

omg! вот и все! Я использую <1.7 ... спасибо! –

ответ

4

Если вы обновляете на JQuery 1,7, вы можете использовать on() путем применения form как селектор, как:

$('body').on("submit", "form", function(e){

Что будет связывать submit событие body, но фильтровать его form, который работает аналогично примеру delegate.

Если вы используете 1.4.2 или новее, вы можете использовать delegate() так:

$('body').delegate("form", "submit", function(e){

+1

+1 yep, правильный синтаксис: .on (events [, selector] [, data], handler (eventObject)), однако было бы лучше применить '.on()' к конкретному контейнеру, если это возможно, пока («submit», «form», function (e) {}); ' – JFK

+0

@JFK Правильно, вы, возможно, чем конкретнее селектор, тем лучше. Однако с предоставленной им информацией не может дать более точный ответ. – Niklas

+0

ну, комментарий был более ориентирован на ОП. ваш ответ идеален в контексте, и именно поэтому я проголосовал за него;) – JFK

0

Вы должны выбрать форму и использовать on связать событие слушатель.

$("form").on("submit", function(e){}); 

Кроме того, необходимо JQuery версии 1.7 или выше, чтобы использовать on.

+0

- OP требуется делегирование для будущей формы – charlietfl

+1

Это выиграло ' т работы. Он хочет использовать делегирование событий, потому что он динамически добавляет форму в DOM (если я понял его правильно) – Alex

+0

А, ладно, тогда Никлас имеет правильный ответ. Я не понял этот вопрос. – Will