首页 > 解决方案 > setTimout() 函数在函数内部不起作用

问题描述

所以,这里是函数,当我将setTimeout()函数放入函数中时checkForm它不起作用,也尝试将它放在checkForm函数之外,它也不起作用。

function checkForm(event) {
    event.preventDefault();
    var name = document.getElementById('username').value;
    var email = document.getElementById('user-email').value;
    var message = document.getElementById('message').value;

    var error = "";

    if (name.length == 1 || email.length == 1 || message.length == 1) {
        error = "Min length of the fields is 2 character."
    } else if (name == "" || email == "" || message == "") {
        error = "Fields are empty."
    } else if (name.length > 15 || email.length > 20 || message.length > 100) {
        error = "Max length of the fields is 15 charcaters."
    }

    if (error == "") {
        alert("You sucessfully filled up the form.");
        setTimeout(function () {
            window.location = "https://www.ebay.com/"
        }, 5000);

    } else {
        document.getElementById('errorDiv').innerHTML = error;
    }
}

标签: javascriptsettimeout

解决方案


您需要更改为window.location.href = "your link"

function checkForm(event) {
    
        setTimeout(function () {
            window.location.href = "https://www.ebay.com/";
            alert('go to ebay');
        }, 2000);

}
<button onclick="checkForm()">Check Form</button>


推荐阅读