【发布时间】:2013-11-07 21:35:03
【问题描述】:
我有一个网页,我正在使用 .ajax 将变量发送到 php 脚本。 php 页面正在加载到浏览器中,就像我正在导航到它一样。该脚本正在正确加载数据,所以我的问题是停止导航并将用户保持在原始页面上。我的表单代码在这里:
echo "<form method='post' action='addTask.php' id='myform'>\n";
echo "<input name='addtask' id='addtask' maxlength='64'/><br/>\n";
echo "<input type='submit' name='submit' id='submit' value='Add Task'/>\n";
echo "</form>\n";
我的 jquery 代码在这里:
$(function(){
$('#myform').submit(function(e){
e.stopPropagation();
$.ajax({
url: 'addTask.php',
type: 'POST',
data: {},
success: alert("Success")
});
});
});
我尝试过:e.preventDefault()、e.stopPropagation() 并返回 false。任何帮助表示赞赏。
$("#submit").click(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "addtask.php",
data: { }
})
.done(function() {
alert( "success" );
})
.fail(function() {
alert( "error" );
});
和
$(function(){
$('#myform').submit(function(e){
e.preventDefault();
$.ajax({
url: 'addTask.php',
type: 'POST',
data: {},
success: function(){alert("Success")}
});
});
});
【问题讨论】:
-
你需要摆脱
submit调用,这是触发重定向行为的原因 -
警报需要在一个函数中......我通常使用
e.preventDefault();。不知道有没有区别。 -
^^^他说的,用done()会更好。
-
您的代码有效,问题一定出在其他地方。你包括 jQuery 吗?表单是否动态添加到页面中?
-
你的评论让我明白了。我有 它工作。谢谢!一旦我把