Javascript 提交无效后刷新jquery表单
对于我的一个网站,我正在使用jquery和PHP设计一个HTML表单,用于通过电子邮件发送数据。 Jquery检查空/空字段,并为每个字段发送警报。 表单提交完整数据后,将发送成功警报,并通过PHP发送输入数据。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).
到目前为止,代码工作正常 一旦提交数据并显示成功警报,我希望刷新/重新加载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.
}