Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用AJAX提交表单而不必离开HTML Formsubmit页面_Javascript_Html_Ajax_Form Submit_Script - Fatal编程技术网

Javascript 如何使用AJAX提交表单而不必离开HTML Formsubmit页面

Javascript 如何使用AJAX提交表单而不必离开HTML Formsubmit页面,javascript,html,ajax,form-submit,script,Javascript,Html,Ajax,Form Submit,Script,我用发送联系我们表格到我的电子邮件,到目前为止,它的工作 但我希望当用户发送表单时,它不会将表单重定向到源代码,而是在同一页面上显示感谢文本。我想用我自己的 因此,我遵循了这一原则,并得出以下结论: 不幸的是,当我尝试验证表单按钮时,它不起作用 <form id="contactForm" action="https://formsubmit.co/el/myemail" method="POST"> <input t

我用发送联系我们表格到我的电子邮件,到目前为止,它的工作

但我希望当用户发送表单时,它不会将表单重定向到源代码,而是在同一页面上显示感谢文本。我想用我自己的

因此,我遵循了这一原则,并得出以下结论: 不幸的是,当我尝试验证表单按钮时,它不起作用

<form id="contactForm" action="https://formsubmit.co/el/myemail" method="POST">
<input type="text"   name="name">
<input type="phone"  name="phone" inputmode="tel">
<input type="hidden" name="_subject" value="Partenaires">
<input type="email"  name="email" >
<input type="text"   name="message" >
<button class="btn btn-primary border rounded-0 shadow-lg d-lg-flex justify-content-lg-center" 
type="submit" name="sendData">Send</button>

<!-- <input type="hidden" name="_next" value="thanks.html">-->

<script type="text/javascript">

var frm = $('#contactForm');
var msg_res ='';

frm.submit(function (e) {

    e.preventDefault();

   
    $.ajax({
        type: frm.attr('method'),
        method: "POST",
        url: "https://formsubmit.co/el/vupawa",
        dataType: 'html',
        accepts: 'application/json',
        data: frm.serialize(),
        success: function (response) {
        $("#message").html(response);
            if(response != msg_res){
                msg_res = response; //store new response
                alert('New message received');
              }
        },
        error: function (response) {
            console.log('An error occurred.');
            console.log(response);
        }
        complete: function(response){
         setTimeout(ajax,1000);
        }
    });
});
});
</script>

发送
var frm=$(“#contactForm”);
var msg_res='';
提交财务报表(职能(e){
e、 预防默认值();
$.ajax({
类型:frm.attr('method'),
方法:“张贴”,
url:“https://formsubmit.co/el/vupawa",
数据类型:“html”,
接受:“application/json”,
数据:frm.serialize(),
成功:功能(响应){
$(“#消息”).html(回复);
如果(响应!=msg\u res){
msg_res=response;//存储新响应
警报(“收到新消息”);
}
},
错误:函数(响应){
log('发生错误');
控制台日志(响应);
}
完成:功能(响应){
setTimeout(ajax,1000);
}
});
});
});
注意:取消这一行的注释
将使表单生效,并浏览另一页,这不是我想要的


有什么想法吗?

为了防止提交,您应该在中返回false

frm.submit(function (e) { 
   return false;
})
或者在表单标签中

var frm=$('#contactForm');
var msg_res='';
提交财务报表(职能(e){
e、 预防默认值();
$.ajax({
类型:frm.attr('method'),
方法:“张贴”,
url:“https://formsubmit.co/el/vupawa",
数据类型:“html”,
接受:“application/json”,
数据:frm.serialize(),
成功:功能(响应){
$(“#消息”).html(回复);
如果(响应!=msg\u res){
msg_res=response;//存储新响应
警报(“收到新消息”);
}
},
错误:函数(数据){
log('发生错误');
控制台日志(数据);
}
});
return false;//这里有一个更改
}); 

发送

从表单中删除操作属性添加成功功能中的警报功能不起作用我相信操作属性是必需的,我在本地尝试时也获得了警报成功,但在主机服务器上尝试时没有起作用,我更新了您不认为
e.preventDefault()作业是否已在提交处理程序中?它适用于按钮事件,我们希望防止表单提交。它肯定适用于任何具有默认操作的事件,它不仅限于“按钮事件”。他已经尝试过,但在他的情况下不起作用,所以batter try all选项我们有是,但是以其他方式做同样的事情不会有帮助,返回
false
只会使jQuery执行
event.preventDefault()
内部,它不会改变任何东西。