JQuery表单提交没有提交

时间:2013-04-16 17:57:10

标签: javascript jquery

我正在以编程方式创建表单并尝试提交它。但是,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中设置断点时,我看到click()函数被调用,并且“form”变量被正确填充。一切都适用于submit()方法。提交处理程序中的alert()方法永远不会被调用。

jquery.js中的代码在调用submit()时执行,但我很难通过它来查看它的作用。

我已确认页面上没有其他名为“submit”的对象。

任何人都知道发生了什么事?

澄清:不使用function()参数调用submit()也不会做任何事情。

进一步说明:调用submit(function(){alert()})后跟submit()会调用alert(),但表单仍未提交。

又一个澄清:我希望整个页面都能刷新。我不是想做一个ajax提交。

4 个答案:

答案 0 :(得分:1)

您正在附加提交事件处理程序,而不是在表单对象上调用submit,请使用此

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();
});

答案 1 :(得分:1)

在提交之前,您必须将新表单注入文档:

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

答案 2 :(得分:0)

致电form.submit()以触发提交表单

答案 3 :(得分:0)

你尝试过这样的事吗?

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

    event.preventDefault();

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

});