使用jQuery ajax表单提交不起作用

时间:2015-05-17 18:37:07

标签: jquery ajax html5 spring-mvc

我有一个使用jQuery动态生成的表单,如下所示:

<form id="editorform" accept-charset="utf-8" method="post" name="editorform" action="menuupdate">
    <div>
        <input id="updateItem" type="submit" value="Update"></input>
    </div>
</form>

我有jQuery Ajax代码:

$("#editorform").submit(function(event)
        {

    var urls=$("#editorform").attr('action');
    event.preventDefault();
    var postData=$("#editorform").serializeArray();
    $.ajax({
        type:'POST',
        url:urls,
        data:postData,
        async:   false,
        contentType :'application/x-www-form-urlencoded; charset=UTF-8',
        success: function(results){
            alert(results);
        }
        });

    return false;

        });

ajax调用未执行,而是正在进行正常的表单提交。

有人可以帮助弄清楚这段代码有什么问题吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您说表单是动态生成的。可能是您在表单元素存在之前注册了提交事件处理程序。如果是这种情况,则$("#editorform")当时不代表任何元素。

您必须在将表单元素添加到页面后绑定submit-event处理程序,或使用事件委派来绑定事件。

尝试更改此内容:

$("#editorform").submit(function(event)

要:

$(document).on('submit', '#editorform', function(event)

此外,我认为您应该拨打.serialize()而不是.serializeArray()