Javascript 如何防止提交后重定向到php文件?

Javascript 如何防止提交后重定向到php文件?,javascript,html,ajax,Javascript,Html,Ajax,我在提交表格方面有问题。表单数据被发送到服务器,就像它应该做的那样,但是在点击send按钮之后,我被重定向到php文件。在提交后,我想继续保持在同一页上 代码如下: window.addEventListener('load',function(){ $(文档).ready(函数(){ $(“#发送”)。单击(功能(e){ e、 预防默认值(); $.ajax({ 键入:“POST”, url:'submitmessage.php', 数据:$('form')。序列化(), 成功:函数(){

我在提交表格方面有问题。表单数据被发送到服务器,就像它应该做的那样,但是在点击send按钮之后,我被重定向到php文件。在提交后,我想继续保持在同一页上

代码如下:

window.addEventListener('load',function(){
$(文档).ready(函数(){
$(“#发送”)。单击(功能(e){
e、 预防默认值();
$.ajax({
键入:“POST”,
url:'submitmessage.php',
数据:$('form')。序列化(),
成功:函数(){
console.log(“提交成功”);
document.getElementById(“发送”).innerHTML=“发送”;
},
错误:函数(){
控制台日志(“错误”);
}
});
});
});
});


提交
问题在于按钮
提交
。这是一个“随机”按钮和
e.preventDefault()不阻止任何内容。如果您将其更改为
,则现在实际提交表单。要防止这种情况,请侦听
$('form').submit(函数(e){})取而代之。

问题在于按钮
Submit
。这是一个“随机”按钮和
e.preventDefault()不阻止任何内容。如果您将其更改为
,则现在实际提交表单。要防止这种情况,请侦听
$('form').submit(函数(e){})

不要在特定按钮上使用处理程序,而是将其分配给表单:

$('form[action=“submitmessage.php”])。在(“submit”,函数(e)上{
//防止默认浏览器表单提交
e、 预防默认值();
//我们将改用AJAX:
$.ajax({
键入:“POST”,
url:this.action,
数据:$(this).serialize(),
成功:函数(){
$(“发送”).text(“发送”);
},
错误:函数(){
$(“#发送”).text(“错误”);
}
});

});不要在特定按钮上使用处理程序,而是将其分配给表单:

$('form[action=“submitmessage.php”])。在(“submit”,函数(e)上{
//防止默认浏览器表单提交
e、 预防默认值();
//我们将改用AJAX:
$.ajax({
键入:“POST”,
url:this.action,
数据:$(this).serialize(),
成功:函数(){
$(“发送”).text(“发送”);
},
错误:函数(){
$(“#发送”).text(“错误”);
}
});

});
这不是重定向,而是
action=“submitmessage.php”
常见的原因是,JS代码中的其他地方有一个错误,它破坏了代码的其余部分,包括
e.preventDefault()
如果您使用的是ajax,则不需要使用
标记以及
操作
方法
,就像您调用php文件2次一样,我检查了语法,结果是正确的。我试图消除行动和方法,但仍然不起作用。这一次它甚至不会向服务器发送数据。你可以在堆栈片段中看到,代码(由我稍微修改)一般都可以工作。通过检查控制台并添加
console.log(“code got here”)
这不是重定向,而是
action=“submitmessage.php”
在您自己的脚本中进行基本调试。常见的原因是,JS代码中的其他地方有一个错误,它破坏了代码的其余部分,包括
e.preventDefault()
如果您使用的是ajax,则不需要使用
标记以及
操作
方法
,就像您调用php文件2次一样,我检查了语法,结果是正确的。我试图消除行动和方法,但仍然不起作用。这一次它甚至不会向服务器发送数据。你可以在堆栈片段中看到,代码(由我稍微修改)一般都可以工作。通过检查控制台并添加
console.log(“code got here”)