[英]How to delay redirect after onclick in javascript?
I am trying to delay the redirect of my page so that the success message can be seen.我正在尝试延迟我的页面的重定向,以便可以看到成功消息。 So far I have not had any luck in getting it.
到目前为止,我还没有运气得到它。 I have tried to stop it with
setTimeout
with the location.href
but that doesn't seem to be working.我试图用带有
location.href
setTimeout
来阻止它,但这似乎不起作用。 Can someone point me in the right direction?有人可以指出我正确的方向吗?
//Form //形式
<form class="form" action="/" method="GET">
<div class="alert"></div>
<input type="text" class="textfields name" name="name" required placeholder="Name">
<input type="email" class="textfields email" name="email" required placeholder="Email">
<textarea class="message" placeholder="Your Message..."></textarea>
<button type="submit" class="footbtn">Send</button>
</form>
// Code
footBtn.addEventListener('click', (e) => {
const alertMessage = document.querySelector('.alert');
const email = document.querySelector('.email').value;
const name = document.querySelector('.name').value;
if (name === '' || email === '') {
alertMessage.innerHTML = 'Name/Email Required';
alertMessage.style.padding = '10px';
alertMessage.style.color = 'red';
e.preventDefault();
} else {
alertMessage.innerHTML = 'Thanks! Someone will be in touch with you soon!';
alertMessage.style.color = 'black';
alertMessage.style.padding = '10px';
alertMessage.style.textAlign = 'center';
}
})
You need to prevent the default action and manually submit the form after a delay.您需要阻止默认操作并在延迟后手动提交表单。 Also, listen for the submit event of the form instead of the click event on the submit button.
另外,监听表单的提交事件而不是提交按钮上的点击事件。
let form = document.querySelector('form');
form.addEventListener('submit', (e) => {
e.preventDefault();
const alertMessage = document.querySelector('.alert');
const email = document.querySelector('.email').value;
const name = document.querySelector('.name').value;
if (name === '' || email === '') {
alertMessage.innerHTML = 'Name/Email Required';
alertMessage.style.padding = '10px';
alertMessage.style.color = 'red';
} else {
alertMessage.innerHTML = 'Thanks! Someone will be in touch with you soon!';
alertMessage.style.color = 'black';
alertMessage.style.padding = '10px';
alertMessage.style.textAlign = 'center';
setTimeout(()=>form.submit(), 700);
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.