我正在使用ajax提交表单。我正在使用的脚本只是测试一些纯文本在processform.php
中回显的表单。但是,当我点击提交按钮时,没有任何警报,页面会重新加载。
不是return false
应该阻止的。当我删除ajax部分时,一切顺利。
我在哪里做错了?
$("#submit").click(function(){
$("#sidebar .message").show();
$(".sidebar-content").hide();
$.ajax({
type: "POST",
url: "processform.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
return false;
});
答案 0 :(得分:2)
简单的解决方案:将提交按钮更改为键入=“按钮”而不是“提交”。
答案 1 :(得分:1)
如果元素#submit
是一个带有type="submit"
的按钮或输入,它可能会触发默认行为,以便将数据发送到任何形式的动作。
您可以将类型更改为type="button"
,该类型没有提交数据的默认行为,或者在您的点击处理程序中使用event.preventDefault()来阻止默认行为。
$("#submit").click(function(e){
e.preventDefault();
...
});
如果您希望在ajax请求成功时触发警报,则可以使用success
选项代替.done()
。
$("#submit").click(function () {
$("#sidebar .message").show();
$(".sidebar-content").hide();
$.ajax({
type: "POST",
url: "processform.php",
data: {
name: "John",
location: "Boston"
},
success: function(msg) {
alert("Data Saved: " + msg);
},
error: function() {
alert("Error occurred");
}
});
return false;
});