我想做的正是我在问题标题中提到的内容。我有一个带有提交按钮的表格。从该用户单击“提交”按钮开始算起的5秒钟后,是否可以使用jQuery将用户重定向到特定链接页面?
答案 0 :(得分:4)
您可以使用setTimeout和window.location
setTimeout(function(event) {
window.location.href = url
}, 5000);
答案 1 :(得分:2)
以下代码完全可以满足您的要求:
$('#button').click(function() {
setTimeout(function() {
window.location.href = 'http://new-url';
}, 5000);
})
答案 2 :(得分:2)
这听起来像是JavaScript的setTimeout
功能的工作。
您需要做的第一件事是防止使用event.preventDefault()
立即提交表单(默认行为),否则将不执行任何操作。
查看带有注释的此示例,应为您提供更多信息;
<form method="post">
<input type="text" name="text-field" placeholder="Enter something" />
<button type="submit">Submit form</button>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('form').on('submit', function(event) { // pass an event argument so we can call preventDefault
event.preventDefault(); // call event.preventDefault to stop form submitting immediately
setTimeout(function() { // Set up a setTimeout operation
console.log('form submitted after timeout');
window.location.href = '/';
}, 5000); /// 5000 ms == 5s
});
});
答案 3 :(得分:0)
您需要使用setTimeout才能实现想要的目标。 setTimeout
是一个带有两个参数的函数:
回调function
是在给定事件发生时要执行的function
。在我们的案例中,事件是经过了给定的时间。这就是您的回调的样子:
function redirect() {
window.location.href = 'http://www.google.com';
}
超时是该函数的第二个参数。它定义了在调用回调之前经过的时间。在我们的示例中,您希望在执行回调之前等待5秒钟,因此超时将为5000毫秒。
setTimeout(function() {
window.location.href = 'http://www.google.com';
}, 5000);
或
function redirect() {
window.location.href = 'http://www.google.com';
}
setTimeout(redirect, 5000);
无论哪种方法,都可以将function
包裹在解决方案周围,然后在function
上调用onclick
。