2010-07-08 2 views
0

меня возникли проблемы определения того, что было причиной, что моя форма не подавать, когда я назвал.submit() вызывается через Javascript не работает

$('#form').submit(); 

через JavaScript (но представленный в порядке, когда я нажал на кнопку отправки). Так что я добавить этот кусок кода для тестирования:

$('#form').live('submit', function() 
{ 
    alert('submitting form'); 
    return true; 
}); 

Теперь, когда я нажимаю на кнопку отправки, отображается предупреждение, а затем форма передает. Когда я звоню:

$('#form').submit(); 

через javascript, отображается предупреждение, однако форма не отправляется. Теперь я вытягиваю форму через ajax в модальное окно, поэтому не уверен, что это имеет к этому какое-то отношение. Кто-нибудь знает, что может вызвать эту проблему?

ответ

2

Событие submit не поддерживается функцией live.

С JQuery API:

В JQuery 1.3.x только следующие JavaScript события (в дополнение к пользовательских событий) может быть связана с .live(): клик, DblClick, KeyDown , keypress, keyup, mousedown, mousemove, mouseout, mouseover и mouseup. Как jQuery 1.4. Метод .live() поддерживает пользовательские события, а также все события JavaScript. Начиная с jQuery 1.4.1 даже фокус и размытие работают с живым (сопоставление с более подходящим, пузырьки, события focusin и focusout). Начиная с jQuery 1.4.1 может быть указано событие зависания (сопоставление с «mouseleave mouseenter»).

+0

Я попытался переключить тип ввода кнопки отправки на кнопку вместо отправки и сделал событие .live() щелчком по этой кнопке. Запрос ajax в событии .live выполняется нормально, он все еще не выполняет метод form.submit() при вызове через javascript в этом событии click. – ryanzec

+0

Вы попробовали то, что я вложил в свой ответ. Казалось бы, это сработало бы. – 2010-07-19 06:18:32

0

Try вызова представить() объекта HTMLFormElement:

$("#form")[0].submit(); 

те же результаты?

+0

Будет делать то же, что $ ("# form"). Submit(); поскольку идентификаторы могут использоваться только один раз. Если вы не указали $ («форма») [0] .submit(); – 2010-07-09 08:52:37

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