Entonces, aquí está la función, cuando coloco la función setTimeout() en la función checkForm , no funciona, también intenté ponerla fuera de la función checkForm y tampoco funciona.
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; } }Necesita cambiar a 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>Intenta de esta manera
setTimeout(function () { location.href = "https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_loc_href_set"; }, 2000);Por casualidad, aparece la alerta y no está reconociendo la ventana emergente y esto está causando que el navegador espere a que usted reconozca la ventana emergente. si ese es el caso, elimine la alerta ("Usted completó con éxito el formulario") y verifique si funciona