Javascript 表单提交成功消息未显示

Javascript 表单提交成功消息未显示,javascript,php,html,forms,Javascript,Php,Html,Forms,我有一个完整的html联系人页面,有一个php电子邮件脚本,还有recaptcha 2——所有这些都很好地工作 之前,表单重定向到php文件,其中显示了一条基本的成功消息。同样,这也很有效 我尝试将contact.js文件合并到页面上,表单提交仍然有效,但PHP脚本中的成功消息没有显示出来 说到JS,我是个白痴,所以这可能就是问题所在,但任何帮助都会得到感激 以下是HTML、PHP和JS: <form id="contact-form" method="post" action="#" r

我有一个完整的html联系人页面,有一个php电子邮件脚本,还有recaptcha 2——所有这些都很好地工作

之前,表单重定向到php文件,其中显示了一条基本的成功消息。同样,这也很有效

我尝试将contact.js文件合并到页面上,表单提交仍然有效,但PHP脚本中的成功消息没有显示出来

说到JS,我是个白痴,所以这可能就是问题所在,但任何帮助都会得到感激

以下是HTML、PHP和JS:

<form id="contact-form" method="post" action="#" role="form">
   <div class="messages"></div>
   <div class="controls">
      <div class="row">
        <div class="col-md-7">
            <div class="form-group">
                <label for="form_name">Name *</label>
                <input id="form_name" type="text" name="name" class="form-control" placeholder="Please enter your name *" required="required" data-error="Name is required">
                <div class="help-block with-errors"></div>
            </div>
            <div class="form-group">
                <label for="form_email">Email *</label>
                <input id="form_email" type="email" name="email" class="form-control" placeholder="Please enter your email address *" required="required" data-error="A valid email is required">
                <div class="help-block with-errors"></div>
            </div>
            <div class="form-group">
                <label for="form_phone">Telephone</label>
                <input id="form_phone" type="tel" name="phone" class="form-control" placeholder="Please enter a contact telephone number (optional)">
                <div class="help-block with-errors"></div>
            </div>
            <div class="form-group">
                <label for="form_message">Message *</label>
                <textarea id="form_message" name="message" class="form-control" placeholder="Please enter your message *" rows="4" required="required" data-error="Please enter your message"></textarea>
                <div class="help-block with-errors"></div>
            </div>
            <p><div class="g-recaptcha" data-sitekey="xxxxxx"></div></p>
            <input type="submit" class="btn btn-success btn-send" value="Submit" onClick="window.location = '#formstart'"></p>
            <br><p class="text-muted"><strong>*</strong> These fields are required.</p>
</form>

名字*
电子邮件*
电话
信息*


*这些字段是必需的

PHP:

将:

if (messageAlert && messageText) {
                    $('#contact-form').find('.messages').html(alertBox);
                    $('#contact-form')[0].reset();
                    grecaptcha.reset();
                }
这是否不清楚您试图调用的消息

既然类消息是“#联系人表单”上的第一个子项,那么在将数据放入前一行之后,它是否总是会立即重置您输入的消息

另外,为什么不切换模式或弹出窗口,而不是动态注入整个div?这似乎是一个很大的工作,可以做一些更容易与预加载的html?还是我遗漏了一些明显的东西

我当然假设警报是“成功”信息。但为什么要在代码中称其为警报?为什么不称之为成功消息?使用适当的术语将有助于您自己和其他人稍后阅读您的代码;)

ajax方法中有一个选项,可以对失败和成功使用不同的函数

我希望我能帮上忙,即使我对你为什么看不到你的文本的理解是错误的

尝试添加

if (messageAlert && messageText) {
                    alert("Test");
                    $('#contact-form').find('.messages').html(alertBox);
                    $('#contact-form')[0].reset();
                    grecaptcha.reset();
                }

首先,将输入提交类型更改为按钮类型。是否检查了在
数据中返回的内容?尝试
alert(data)
console.log(data)
Fred-不确定这会有什么不同。表单提交得很好,只是没有显示成功消息。艾哈迈德-我不知道你的意思;我不擅长这些东西,所以如果你能详细说明一下,那就太好了。如果你删除整个if语句
if(!empty($\u SERVER['HTTP\u X\u REQUESTED\u with'])和strtolower($\u SERVER['HTTP\u X\u REQUESTED\u with'])='xmlhttprequest'){
只需回显响应即可显示错误/成功消息NHI Morten,感谢您查看。但是,我还是一个初学者,不太了解响应。您对php/js应该是什么样子有什么建议吗?谢谢简单地删除这一行:$(“#联系人表单”)[0]。reset();尝试在仅读取“test”的成功函数中添加警报或者别的什么。来验证你是否达到了成功的标准。嗨,莫顿-正如我说的,我真的是一个初学者,所以我不知道从哪里开始你的建议。如果你有两分钟的时间,可以准确地告诉我需要添加/删除哪些代码,那将是令人惊讶的。Thanks@JoeFlaherty我已经编辑了我的答案,包括代码snippe我建议。如果出现一个显示“Test”的弹出窗口,然后您可以单击OK取消它,您就知道您的php位执行没有失败。如果没有,则说明ajax没有执行,或者您的php位有错误。
if (messageAlert && messageText) {
                    $('#contact-form').find('.messages').html(alertBox);
                    $('#contact-form')[0].reset();
                    grecaptcha.reset();
                }
if (messageAlert && messageText) {
                    alert("Test");
                    $('#contact-form').find('.messages').html(alertBox);
                    $('#contact-form')[0].reset();
                    grecaptcha.reset();
                }