当您提交时,我有一个表单,它会将您插入的数据作为电子邮件发送给某人。然后页面会将您重定向到主页。
我想要的是防止服务器端所做的重定向。我需要能够在提交表单而不是服务器端后选择重定向的位置。
所以我做了什么,我使用 Javascript 来防止重定向,然后我决定提交后去哪里。
这是表格
$("#CustomerEnquiryForm").submit(function (e)
{
e.preventDefault();
// My redirection //
if (window.location.href.indexOf("nodeId") > -1)
{
window.location = "/en/our-service/"
}
else
{
window.location = "/en/"
}
});
<form id="CustomerEnquiryForm" action="https://test.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST">
<label for="first_name">First Name</label>
<input id="first_name" required="required" name="first_name" type="text" />
<br>
<label for="last_name">Last Name</label>
<input id="last_name" required="required" name="last_name" type="text" />
<br>
<label for="company">Company</label>
<input id="company" required="required" name="company" type="text" /><br>
<label for="phone">Phone</label><input id="phone" name="phone" type="text" />
<br>
<label for="mobile">Mobile</label>
<input id="mobile" required="required" name="mobile" type="text" />
<br>
<label for="email">Email</label>
<input id="email" required="required" name="email" type="text" /><br>
</form>
我可以阻止服务器重定向。我的重定向有效..但主要问题..表单不再发送电子邮件。
如何解决这个问题?
谢谢。
最佳答案
试试这个
$("#CustomerEnquiryForm").submit(function(e) {
e.preventDefault();
$.post("https://test.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8", $(this).serialize() , function(data, status) {
console.log(data);
console.log(status);
var obj = JSON.parse(data);
//Read the server response here
// My redirection //
if (window.location.href.indexOf("nodeId") > -1) {
window.location = "/en/our-service/"
} else {
window.location = "/en/"
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="CustomerEnquiryForm">
<label for="first_name">First Name</label>
<input id="first_name" required="required" name="first_name" type="text" />
<br>
<label for="last_name">Last Name</label>
<input id="last_name" required="required" name="last_name" type="text" />
<br>
<label for="company">Company</label>
<input id="company" required="required" name="company" type="text" /><br>
<label for="phone">Phone</label><input id="phone" name="phone" type="text" />
<br>
<label for="mobile">Mobile</label>
<input id="mobile" required="required" name="mobile" type="text" />
<br>
<label for="email">Email</label>
<input id="email" required="required" name="email" type="text" /><br>
<button type = "submit">Submit</button>
</form>
关于javascript - 提交表单后如何重定向到某个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52465477/