2013-03-03 2 views
1

У меня есть сгенерированная js форма (то есть я эхо-форму из js-кода).js сгенерированная форма

Так что я написал обработчик представить, который активируется, когда эта форма представляется с помощью:

$(document).ready(function(){ 
$('#form-coures').submit(function(event){ 

По крайней мере, это то, что я хочу достичь.

Проблема в том, что когда я отправляю эту форму, обработчик не называется ?!

Любые идеи?

Примечание: если я определяю ту же форму, но не через js, все работает нормально.

ответ

2

Трудно сказать, что вы не видите весь свой код, но вы регистрируете обработчик событий отправки на готовом документе, и тогда элемент DOM form-courses еще не существует (если вы его генерируете после загрузки страницы с помощью javascript). Зарегистрируйте событие после вы добавите форму на страницу.

+0

Как я могу зарегистрировать мероприятие? – Kam

+0

С тем же '$ ('# form-coures'). Submit (function (event) {...', но после того, как ваш скрипт добавит форму. Или используйте делегацию в качестве ответа @ethagnawl. – Bort

-1

ну ... я никогда не делал этого с помощью JQuery (например, создаю целую форму программно), но, насколько идеи, вы подумали о том, чтобы вместо этого использовать кнопку onclick вместо кнопки отправки?

+1

Не делайте этого. Затем, когда кто-то нажимает на одно из полей, форма будет отправляться обычным способом; ваш код jQuery не поймает его. – icktoofay

0

Форма не существует, если вы прикрепляете обработчик событий.

Использование делегирования мероприятий $(document).on('submit', 'form', function() {...})

Смежные вопросы