jquery disable a button for a specific time jquery disable a button for a specific time asp.net asp.net

jquery disable a button for a specific time


Since this is likely to be a task you might like to repeat, I think the best way to do this would be to extend jQuery like so:

$.fn.timedDisable = function(time) {    if (time == null) { time = 5000; }    return $(this).each(function() {        $(this).attr('disabled', 'disabled');        var disabledElem = $(this);        setTimeout(function() {            disabledElem.removeAttr('disabled');        }, time);    });};

This will allow you to call a function on a set of matched elements which will temporarily disable them. As it is written, you can simply call the function, and the selected elements will be disabled for 5 seconds. You would do that like so:

$('#some-button').timedDisable();

You can adjust the default time setting by changing the 5000 in the following line:

if (time == null) { time = 5000; }

You can optionally pass in a time value in milliseconds to control how long the elements will be disabled for. For example:

$('#some-button').timedDisable(1000);

Here's a working demo: http://jsfiddle.net/fG2ES/


Disable the button and then use setTimeout to run a function that enables the button after a few seconds.

$('#some-button').attr("disabled", "disabled");setTimeout('enableButton()', 5000);function enableButton(){   $('#some-button').removeAttr('disabled');}


Try this.

(function(){$('button').on('click',function(){var $this=$(this);        $this            .attr('disabled','disabled');             setTimeout(function() {             $this.removeAttr('disabled');             }, 3000);      }); })();

You can find a working example here http://jsfiddle.net/informativejavascript/AMqb5/