Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 提交无效后刷新jquery表单_Javascript_Php_Jquery_Html_Forms - Fatal编程技术网

Javascript 提交无效后刷新jquery表单

Javascript 提交无效后刷新jquery表单,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,对于我的一个网站,我正在使用jquery和PHP设计一个HTML表单,用于通过电子邮件发送数据。 Jquery检查空/空字段,并为每个字段发送警报。 表单提交完整数据后,将发送成功警报,并通过PHP发送输入数据。 到目前为止,代码工作正常 一旦提交数据并显示成功警报,我希望刷新/重新加载html表单。 但这不会发生,因为表单保留了预先输入的数据。 请帮我做这件事。我的Jquery&HTML表单如下所示 JQUERY-CODE(使用谷歌libs2.2) JQUERY代码 $(document).

对于我的一个网站,我正在使用jquery和PHP设计一个HTML表单,用于通过电子邮件发送数据。 Jquery检查空/空字段,并为每个字段发送警报。 表单提交完整数据后,将发送成功警报,并通过PHP发送输入数据。
到目前为止,代码工作正常

一旦提交数据并显示成功警报,我希望刷新/重新加载html表单。 但这不会发生,因为表单保留了预先输入的数据。
请帮我做这件事。我的Jquery&HTML表单如下所示

JQUERY-CODE(使用谷歌libs2.2)

JQUERY代码

 $(document).ready(function() {
      $("#submit").click(function() {
        var name = $("#name").val();
        var email = $("#email").val();
        var message = $("#message").val();
        $("#returnmessage").empty(); // To empty previous error/success message.
        // Checking for blank fields.
        if (name == '') {
          alert(" Please fill your name");
        } else if (email == '') {
          alert("Please fill your email");
        } else if (message == '') {
          alert("Please Fill message");
        } else { alert("Your form submitted. We will contact you soon.");
          $.post("xxx.php", { // To php file.
            name: name,
            email: email,
            message: message
          }, function(data) {
            $("#returnmessage").append(data);
            if (data == "Your form submitted. We will contact you soon.") {
              $("#form")[0].reset(); // To reset form fields on success.
            }
          });
        }
      });
    });
HTML表单代码:

<form id="form" method="post" action="  ">
  <h4>FEED-BACK FORM</h4>
  <p id="returnmessage"></p>
  <label>Name:  </label>
  <input type="text" id="name" /><br>
  <label>Email:  </label>
  <input type="text" id="email" /><br>
  <label>Message:  </label>
  <input type="text" id="message" /><br>
  <input type="button" id="submit" value="Submit"/>
</form>

反馈形式

姓名:
电邮:
信息:

您可以通过将输入字段的值设置为

检查下面的js

 if (data == "Your form submitted. We will contact you soon.") {
        document.getElementById('form').reset(); // To reset form fields on success.
}


问题最有可能出现在您的
if
语句中。行
$(“#form”)[0].reset()
正确,将其移动到
if
语句上方以查看其是否工作。

控制台记录您的post响应,并检查您的xxx.php中的响应。在检查
if($.trim(data)=“…”)
显示您的xxx.php文件源代码。php代码:'if(count($\u post)==0)die(“需要发布”)$名称=$_POST['name']$email=$_POST['email']$message=$_POST['message']$电子邮件\u body=“亲爱的先生,\n”。“名称:$Name\n”。“电子邮件:$Email\n”。“消息:$Message\n”//电子邮件发送至$Email_自xxx@xxx.xxx'; $电子邮件\u subject=“我的表格”$to=”xxx@xxxx.xxx"; $headers=“From:$email\u From\r\n”//发送电子邮件!如果(邮件($to,$email_subject,$email_body,$headers))死亡(“成功”);否则就死(“失败”);'不需要从if语句移动。删除一个=如果使用==它将检查数据类型,这就是它不工作的原因。如果(data=“您的表单已提交。我们将很快与您联系。”){$(“#表单”)[0].reset();//在成功时重置表单字段。}那么,这是错误的。不能使用单符号表示相等以检查语句是否为真,单符号仅用于赋值。我的建议是在比较stuff时只使用===,因为它比较类型和值。当您尝试比较不同类型的数据时,您应该总是得到false。在开发人员控制台中尝试那些:“2”==2和“2”==2,看看结果如何。在第一种情况下,编译器依赖于类型强制。我知道了。无法从这里理解。document.getElementById('form').reset();这对我有用。
 if (data == "Your form submitted. We will contact you soon.") {
        document.getElementById('form').reset(); // To reset form fields on success.
 if (data == "Your form submitted. We will contact you soon.") {       
    $('#form').find("input[type=text]").val(""); // To reset form fields on success.
 }