【发布时间】:2016-02-21 12:14:01
【问题描述】:
我的“您的消息已提交!”有问题用户单击表单上的提交按钮后的文本。问题是即使没有点击任何内容,该文本也会出现在开头,所以当您进入我的页面时,该文本已经存在......这里有什么问题?
表格:
<form role="form" id="contactForm">
<div class="row">
<div class="form-group">
<input type="text" class="form-control" name="name" id="name" placeholder="Wpisz swoje imię, nazwisko" required="required">
</div>
<div class="form-group">
<input type="email" class="form-control" name="email" id="email" placeholder="Enter email" required>
</div>
<div class="form-group">
<textarea id="message" name="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea>
</div>
<button type="submit" id="form-submit" class="btn-block">Wyślij wiadomość</button>
<div id="msgSubmit" class="h3 text-center hidden">Your message has been submitted!</div>
</div>
</form>
JS:
<script>
$(document).ready(function() {
$("#contactForm").on("submit", function(event) {
if (event.isDefaultPrevented()) {
} else {
event.preventDefault();
submitForm();
}
});
$("#msgSubmit").removeClass("hidden");
});
function submitForm() {
$.ajax({
type: "POST",
url: "mail.php",
data: $("#contactForm").serialize(),
success: function(text) {
if (text == "success"){
formSuccess();
}
},
error : function() {
}
});
}
$(document).ready(function formSuccess() {
$("#msgSubmit" ).removeClass( "hidden" );
});
</script>
PHP:
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$EmailTo = "unknown@unknwon.com.pl";
$Subject = $name;
$message .= "\n\n" . 'From: '. $email;
$success = mail($EmailTo, $Subject, $message);
// redirect to success page
if ($success){
echo "success";
}else{
echo "invalid";
}
?>
【问题讨论】:
-
您正在删除 onReady 中的“隐藏”类。你做了两次。为什么?
-
那我应该改变什么,你提出一个答案吗?
-
如我的回答中所述,您需要在提交表单时显示消息,并在通话结束时再次隐藏。
-
实际上...因为您说表单已提交。可能该消息应仅在成功时显示。这取决于ajax调用需要多少时间。如果速度快,最后写消息就够了。
标签: javascript php jquery html