使用jQuery的Ajax请求无法正常工作

时间:2011-10-20 15:24:06

标签: php javascript jquery html ajax

我没有发展很久,我失去了一些反应。

有人可以帮助我吗?

根据谷歌浏览器,当我按提交时,它什么都没有发生:

HTML

<form>
    <label for="title">Title :</label>
        <input type="text" id="title" />
    <label for="comment">Comment :</label>
        <input type="text" id="comment" />
    <label for="project">Project :</label>
        <input type="text" id="project" />

    <input type="submit" value="Submit" />
</form>

的JavaScript

$(function(){
    $('form').submit(function(){
        return false;
        $.ajax({
            type: 'POST',
            url: 'http://support.foo.com/insert_bug.aspx',
            data: 'username=mr%20dog&password=dog%3Ddog&short_desc=' + $('#title').val() + '&comment=' + $('#comment').val() + '&projectid=' + $('#project').val(),
            success: function(msg){
                alert(msg);
            }
        })
    });
});

insert_bug.aspx

string username = Request["username"];
string password = Request["password"];
string short_desc = Request["short_desc"];
string comment = Request["comment"];
string projectid_string = Request["projectid"];

如果我从浏览器发送网址,则会添加错误。

2 个答案:

答案 0 :(得分:4)

问题是您在调用submit之前从.ajax事件处理程序返回,这意味着您的AJAX调用永远不会到达。您可以将return语句移动到函数体的末尾:

$('form').submit(function(){
    //AJAX call...
    return false;
});

或者您可以使用事件对象的preventDefault方法获得相同的效果:

$('form').submit(function(e){
    e.preventDefault();
    //AJAX call...
});

答案 1 :(得分:1)

如果在任何地方发生任何事情,我会感到惊讶 - 在调用$.ajax函数之前,您从提交函数返回false。 尝试:

$(function(){
    $('form').submit(function(){
        $.ajax({
            type: 'POST',
            url: 'http://support.foo.com/insert_bug.aspx',
            data: 'username=mr%20dog&password=dog%3Ddog&short_desc=' + $('#title').val() + '&comment=' + $('#comment').val() + '&projectid=' + $('#project').val(),
            success: function(msg){
                alert(msg);
            }
        });
        return false;
    });
});