jQuery setTimeout()函数

时间:2015-05-07 16:39:33

标签: javascript jquery

我是JS的新手,面临一些看似简单的挑战。

我想做的是:

  1. 用户点击“提交”
  2. 的按钮
  3. 点击按钮时,“提交”一词会更改为“请稍候...”&按钮被禁用
  4. 该按钮被禁用2秒
  5. 2秒后,“请提交..”这个词改回“提交”&按钮被激活(不再禁用)
  6. 我写了下面的代码。对此有任何建议将非常感激

    HTML

    <form action="#" method="post">
        <input type="button" name="submit" value="Submit" class="submit_wide" id="myBtn" >
    </form>
    

    的javascript

    $(".submit_wide").click(function () {
        $(this).val('Please wait..');
        $(this).attr('disabled', true);
        setTimeout(function() { 
            $(this).attr('disabled', false);
            $(this).val('Submit');
        }, 2000);
    });
    

1 个答案:

答案 0 :(得分:13)

问题是在registerUserNotificationSettings:调用中,setTimeout()没有引用该按钮。您需要设置一个变量来保持对按钮的引用。

我在下面创建了一个示例。了解我如何使用名为this的变量。

$this
$(".submit_wide").click(function () {
    var $this = $(this);
    $this.val('Please wait..');
    $this.attr('disabled', true);
    setTimeout(function() { 
        $this.attr('disabled', false);
        $this.val('Submit');
    }, 2000);
});