javascript - 提交表单后如何重定向到某个页面

标签 javascript jquery html ajax forms

当您提交时,我有一个表单,它会将您插入的数据作为电子邮件发送给某人。然后页面会将您重定向到主页。

我想要的是防止服务器端所做的重定向。我需要能够在提交表单而不是服务器端后选择重定向的位置。

所以我做了什么,我使用 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/

相关文章:

JavaScript 替换 - u0009 .... 与 .replace(/\u0009/g ,'' );

javascript - 开启 JQuery 切换按钮

html - 在 GROUP_CONCAT 中连接字符串的正确方法

javascript - 如何在页面上组织随机放置的 div?

Javascript - 如何使用正则表达式更干净/高效地执行此字符串操作?

css - 我可以使用其所有 css 功能制作一个与其普通 View 相同的可打印网页吗?

javascript - 删除小数点后的值 TypeScript 或 JavaScript

javascript - token '&&' 在此版本中不是有效的语句分隔符

使用输入字段属性(无需 eval)的 Javascript 正则表达式验证

javascript - $ ('h1' ) 如何作为 jQuery 中的数组登录到 Web 控制台?