我没有发展很久,我失去了一些反应。
有人可以帮助我吗?
根据谷歌浏览器,当我按提交时,它什么都没有发生:
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"];
如果我从浏览器发送网址,则会添加错误。
答案 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;
});
});