单击按钮后,计算x秒,然后使用jquery重定向到特定链接

时间:2018-08-05 08:09:44

标签: javascript jquery

我想做的正是我在问题标题中提到的内容。我有一个带有提交按钮的表格。从该用户单击“提交”按钮开始算起的5秒钟后,是否可以使用jQuery将用户重定向到特定链接页面?

4 个答案:

答案 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