2013-04-16 3 views
2

Я создаю форму программно и пытаюсь ее отправить. Функция submit() ничего не делает.JQuery form submit не отправляет

$(".deleteLink").click(function(event) { 
    event.preventDefault(); 

    var form = $("<form></form>"); 
    form.attr("method", "POST"); 
    form.attr("action", "http://myurl.com"); 

    form.submit(function() { 
     alert('Handler for .submit() called.'); 
     return false; 
    }); 
}); 

Когда я установить контрольные точки в Firebug, я вижу, что функция мыши() вызывается, а переменная «форма» получает правильно заполнены. Все работает прямо до метода submit(). Метод alert() внутри обработчика отправки никогда не вызван.

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

Я подтвердил, что на странице нет другого объекта с именем «отправить».

Кто-нибудь знает, что происходит?

Уточнение: вызов функции submit() без параметра function() также ничего не делает.

Дальнейшие уточнения: вызов submit (function() {alert()}), за которым следует submit(), вызывает alert(), но форма до сих пор не отправляется.

Еще одно уточнение: Я хочу, чтобы вся страница была обновлена. Я не пытаюсь сделать ajax submit.

+0

триггер представить –

+1

сделать 'form.trigger ('Submit');' для фактического представления – karthikr

+0

могли бы вы связать ? – howderek

ответ

1

Вы должны придать новую форму в документ перед отправкой:

$("body").append(form); 
form.submit(); 
+0

Бинго! Вот и все. – ccleve

1

Вы подключаете представить обработчик событий вместо вызова представить на форме объекта, используйте этот

form.submit(); 

вас код будет

$(".deleteLink").click(function(event) { 
    event.preventDefault(); 

    var form = $("<form></form>"); 
    form.attr("method", "POST"); 
    form.attr("action", "http://myurl.com"); 

    form.submit(function() { 
     alert('Handler for .submit() called.');  
    }); 
    form.submit(); 
}); 
+0

См. Разъяснения выше. – ccleve

0

вызов form.submit() для запуска предоставить форму

0

Вы пробовали что-то вроде этого?

$(".deleteLink").click(function(event) { 

    event.preventDefault(); 

    $.post( 
     'http://myurl.com', 
     function(){ 
      alert('success'); 
      // window.location.href = 'other page'; 
     } 
    ); 

}); 
+0

Я думаю, что это делает ajax submit(). Я хочу обновить всю страницу. – ccleve

+0

window.location.href = 'другая страница'; сделаю работу – germanandino