在表单提交 html 页面被定向到另一个页面 - 如何防止这种情况
On Form submission html page is directed to another page - How to prevent that
我有以下 html 和 java 脚本,但在提交表单时页面被定向到 mail.php 而不是停留在 index.html - 请帮忙。
其次,我想在表单底部的表单上显示邮件发送成功的消息。
我调试了 java 脚本,它也通过了 if 条件。
<form method="post" name="FrmEnquiry" id="FrmEnquiry" action="mail.php" onsubmit="sendEnquiryform();">
<input name="name" id="name" required="required" placeholder="Your Name">
<input name="email" id="email" type="email" required="required" placeholder="Your Email">
<div class="clearfix"> </div>
<textarea name="message" id="message" cols="20" rows="5" required="required" placeholder="Message"></textarea>
<div class="submit">
<input id="submit" name="submit" type="submit" value="Submit">
</div>
</form>
<span id="sucessMessage"> </span>
Mail.Php
function sendEnquiryform() {
var name = $('#name').val();
var email = $('#email').val();
var message = $('#message').val();
$.post('mail.php', '&name=' + name + '&email=' + email + message, function(
result,
status,
xhr
) {
if (status.toLowerCase() == 'error'.toLowerCase()) {
alert('An Error Occurred..');
} else {
//alert(result);
$('#sucessMessage').html(result);
}
}).fail(function() {
alert('something went wrong. Please try again');
});
}
为了防止默认表单提交行为,return false
来自您的 submit
事件处理程序。
将您的 onsubmit
属性更改为
<form method="post" name="FrmEnquiry" id="FrmEnquiry"
action="mail.php" onsubmit="return sendEnquiryform();">
然后是来自事件处理程序的 return false
。
function sendEnquiryform() {
// ...
return false;
}
由于您正在进行 Ajax 调用,因此 action
属性变得不必要并且可以删除。
将您的 fail()
回调函数更改为
}).fail(function(xhr, status, error) {
console.log(error);
alert('something went wrong. Please try again');
});
并检查您的浏览器控制台日志 Ctrl+Shift+K 是否存在潜在错误消息。
我有以下 html 和 java 脚本,但在提交表单时页面被定向到 mail.php 而不是停留在 index.html - 请帮忙。
其次,我想在表单底部的表单上显示邮件发送成功的消息。
我调试了 java 脚本,它也通过了 if 条件。
<form method="post" name="FrmEnquiry" id="FrmEnquiry" action="mail.php" onsubmit="sendEnquiryform();">
<input name="name" id="name" required="required" placeholder="Your Name">
<input name="email" id="email" type="email" required="required" placeholder="Your Email">
<div class="clearfix"> </div>
<textarea name="message" id="message" cols="20" rows="5" required="required" placeholder="Message"></textarea>
<div class="submit">
<input id="submit" name="submit" type="submit" value="Submit">
</div>
</form>
<span id="sucessMessage"> </span>
Mail.Php
function sendEnquiryform() {
var name = $('#name').val();
var email = $('#email').val();
var message = $('#message').val();
$.post('mail.php', '&name=' + name + '&email=' + email + message, function(
result,
status,
xhr
) {
if (status.toLowerCase() == 'error'.toLowerCase()) {
alert('An Error Occurred..');
} else {
//alert(result);
$('#sucessMessage').html(result);
}
}).fail(function() {
alert('something went wrong. Please try again');
});
}
为了防止默认表单提交行为,return false
来自您的 submit
事件处理程序。
将您的 onsubmit
属性更改为
<form method="post" name="FrmEnquiry" id="FrmEnquiry"
action="mail.php" onsubmit="return sendEnquiryform();">
然后是来自事件处理程序的 return false
。
function sendEnquiryform() {
// ...
return false;
}
由于您正在进行 Ajax 调用,因此 action
属性变得不必要并且可以删除。
将您的 fail()
回调函数更改为
}).fail(function(xhr, status, error) {
console.log(error);
alert('something went wrong. Please try again');
});
并检查您的浏览器控制台日志 Ctrl+Shift+K 是否存在潜在错误消息。