当ajax单独工作时,ajax + form.submit不起作用

时间:2013-12-03 00:04:44

标签: jquery html ajax submit

我使用jquery ajax + form.submit()方法时遇到问题。当我提交表单时,它总是在Ajax请求中触发错误部分。请求状态始终为200 OK,但Firebug中的Response仅显示整个html文档。

这是我的表格

<form method="GET" id="login_form">
    <input class="text_field" type="text" placeholder="El. paštas" name="email_inp"/>
    <input class="text_field" type="password" placeholder="******" name="pass_inp"/>
    <button id="sign_in">OK</button>
</form>

这是我的jQuery脚本

$(document).ready(function() {
    $("#login_form").submit(function() {
        $.ajax({ 
            url: 'index.php/notes',
            type: 'GET',
            dataType: 'json',
            beforeSend: function(xhr) {
                xhr.setRequestHeader('Authorization', 'Basic ZWdpczoxMjM0NTY=');    
            },
            error: function(jqXHR, textStatus, errorThrown){
                alert('status: '+ textStatus);
                alert('error: '+ errorThrown);
            },
            success:function(json) {
                alert("works");
                $('#msg').html(json[0].text);
                $('#msg').html(JSON.stringify(json));
            }
        });
});
});

如果我删除它:

$("#login_form").submit(function() {
});

它工作正常,并在Firebugs http响应和div中标记了数据。

谢谢。

1 个答案:

答案 0 :(得分:0)

你遇到了这个问题,因为你没有停止默认事件,对于表单,defaut事件是提交,你选择了ajax来提交表单,所以你应该停止默认的提交事件,

$("#login_form").submit(function(event) {
   event.preventDefault();
   $.ajax({....});
});

这是解决方案。祝好运 ! :d