Отключить кнопку отправки в течение короткого периода времени с jQuery? - PullRequest
4 голосов
/ 28 октября 2011

[Я новичок в jQuery, поэтому не вините меня, если я что-то не так]

Я просматривал вопросы здесь на SO о: «Отключить кнопку отправки после нажатия». Хорошо, вокруг полно таких вещей, но я не мог найти способ отключить их на ограниченное время. например 20 секунд

Может быть, я идиот, но как?

[У меня есть только простая HTML-форма]

Ответы [ 2 ]

18 голосов
/ 28 октября 2011
var enableSubmit = function(ele) {
    $(ele).removeAttr("disabled");
}

$("#submit").click(function() {
    var that = this;
    $(this).attr("disabled", true);
    setTimeout(function() { enableSubmit(that) }, 1000);
});

Демо: http://jsfiddle.net/pHxF2/2/

1 голос
/ 21 ноября 2018

Я знаю, что прошло несколько лет с тех пор, как на этот вопрос был дан ответ, но у меня была небольшая проблема с тем, чтобы заставить это работать У меня есть что-то похожее на работу для меня:

var enableBtn = function() {
        $('.btn').attr("disabled", false);
        }
        $('.second').click(function (){
            var that = this;
            $('.second').attr("disabled", true);
            setTimeout(function() { enableBtn(that) }, 1500);
        });
        $('.main').click(function (){
            var that = this;
            $('.main').attr("disabled", true);
            setTimeout(function() { enableBtn(that) }, 1500);
        });
        $('.disableall').click(function (){
            var that = this;
            $('.btn').attr("disabled", true);
            setTimeout(function() { enableBtn(that) }, 1500);
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" class="btn main" value="disable this">
<input type="button" class="btn second" value="disable this">
<input type="button" class="btn disableall" value="disable all">
...