The function presented in this page can be used to disable and automatically enable buttons in web page, with JavaScript. After the user clicks on the button, that button is disabled, and its text is changed, then, after 2 seconds, the button is automatically enabled.
- This function receives an Array with the ID of the buttons to which you want to add this effect.

Code of the function:

// function to disable and enable buttons, receives an array with button IDs
// from: https://coursesweb.net/javascript
function disableEnableBtn(ids){
 // traverses the array with IDs
 var nrids = ids.length;
 for(var i=0; i<nrids; i++){
 // registers onclick event to each button
 if(document.getElementById(ids[i])) {
 document.getElementById(ids[i]).onclick = function() {
 this.setAttribute('disabled', 'disabled'); // disables the button by adding the disabled attribute
 this.innerHTML = 'Disabled'; // changes the button text
 var idbtn = this.id; // stores the button ID

 // calls a function after 2 sec. (2000 milliseconds)
 setTimeout(()=>{
 document.getElementById(idbtn).removeAttribute('disabled'); // removes the disabled attribute
 document.getElementById(idbtn).innerHTML = 'Click'; // changes tne button text
 }, 2000 );
 }
 }
 }
}

- Set an array with IDs of the buttons (one or more IDs), then call the disableEnableBtn() function, passing the array as argument. To change the time after which the button is enabled, modify the value of 2000 added in setTimeout(); see also the comments in code.

- Example with two buttons.
<h4>Example automatically Disable and Enable button</h4>
<p>Click on each button and wait 2 seconds.</p>

<button id='btn1'>Click</button> - <button id='btn2'>Click 2</button>
<script>
// function to disable and enable buttons, receives an array with button IDs
// from https://coursesweb.net/javascript
function disableEnableBtn(ids){
 // traverses the array with IDs
 var nrids = ids.length;
 for(var i=0; i<nrids; i++){
 // registers onclick event to each button
 if(document.getElementById(ids[i])) {
 document.getElementById(ids[i]).onclick = function() {
 this.setAttribute('disabled', 'disabled'); // disables the button by adding the disabled attribute
 this.innerHTML = 'Disabled'; // changes the button text
 var idbtn = this.id; // stores the button ID

 // calls a function after 2 sec. (2000 milliseconds)
 setTimeout(()=>{
 document.getElementById(idbtn).removeAttribute('disabled'); // removes the disabled attribute
 document.getElementById(idbtn).innerHTML = 'Click'; // changes tne button text
 }, 2000 );
 }
 }
 }
}

// array with IDs of buttons
var btnid = ['btn1', 'btn2'];

disableEnableBtn(btnid); // calls the function
</script>

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which meta tag provides a short description of the page?
<meta content="..."> <meta description="..."> <meta http-equiv="...">
<meta name="description" content="70-160 characters that describes the content of the page" />
Which CSS property is used to stop the wrapping effect of the "float"?
clear text-align position
#some_id {
  clear: both;
}
Click on the method which gets an array with all the elements in the document that have a specified tag name.
getElementsByName() getElementById() getElementsByTagName()
var divs = document.getElementsByTagName("div");
var nr_divs = divs.length;
alert(nr_divs);
Indicate the PHP function which returns the number of elements in array.
is_[) count() strlen()
$arr =[7, 8, "abc", 10);
$nri = count($arr);
echo $nri;        // 4
Disable button and Enable it after specified time

Last accessed pages

  1. List with JavaScript events (216)
  2. CSS3 transition (1487)
  3. Get search data from URL address in JavaScript (2396)
  4. PHP MySQL - WHERE and LIKE (20977)
  5. Add, Change, and Remove Attributes with jQuery (38241)

Popular pages this month

  1. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (1391)
  2. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (1361)
  3. Contact page - CoursesWeb (1342)
  4. Tabs effect with CSS (1342)
  5. Insert, Select and Update NULL value in MySQL (843)