如何在表单提交(Javascript)后重定向? [重复]

问题描述 投票:1回答:1

这个问题在这里已有答案:

这是我从中获取的来源(参见“直接通过网络浏览器部分”部分)https://www.espocrm.com/documentation/administration/web-to-lead/

问题是,如何在提交后重定向此表单?

<script type="text/javascript">
    var webToLeadFormElement = document.getElementById('web-to-lead-form');
    var webToLeadFormIsSubmitted = false;

    webToLeadFormElement.addEventListener('submit', function (event) {
        event.preventDefault();
        if (webToLeadFormIsSubmitted) return;
        webToLeadFormIsSubmitted = true;
        webToLeadFormElement.submit.setAttribute('disabled', 'disabled');

        var payloadData = {
            firstName: webToLeadFormElement.firstName.value,
            lastName: webToLeadFormElement.lastName.value,
            emailAddress: webToLeadFormElement.emailAddress.value
        };

        // Needed url can be found on Lead Capture detail view.
        var url = 'https://URL_OF_YOUR_CRM/api/v1/LeadCapture/API_KEY'; 

        var xhr = new XMLHttpRequest();
        xhr.open('POST', url, true);
        xhr.setRequestHeader('Content-Type', 'application/json');
        xhr.setRequestHeader('Accept', 'application/json');
        xhr.onreadystatechange = function() {
            if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
                var containerElement = document.getElementById('web-to-lead-form-container');
                containerElement.innerHTML = 'Sent';
            }
        }
        xhr.onerror = function() {
            webToLeadFormElement.submit.removeAttribute('disabled');
            webToLeadFormIsSubmitted = false;
        }
        xhr.send(JSON.stringify(payloadData));
    });
</script>
<div id="web-to-lead-form-container">
    <form id="web-to-lead-form">
        <div>
            <input type="text" name="firstName" placeholder="First Name">
        </div>
        <div>
            <input type="text" name="lastName" placeholder="Last Name" required>
        </div>
        <div>
            <input type="email" name="emailAddress" placeholder="Email Address" required>
        </div>
        <div>
            <button type="submit" name="submit">Submit</button>
        </div>
    </form>
</div>
javascript
1个回答
0
投票

您可以使用 :

xhr.onreadystatechange = function() {
    if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
       var containerElement = document.getElementById('web-to-lead-form-container');
       containerElement.innerHTML = 'Sent';
       setTimeout(function(){
            // SHow MSG and after 2 sec redirect 
            window.location.href=url;
       } , 2000)
      }
    }

      //  window.location.href=url

成功或失败后重定向。

© www.soinside.com 2019 - 2024. All rights reserved.