Beyond the Button Tag: Exploring Alternatives for Clickable Elements


Creating the Button

The basic structure is:

<button>Click me</button>

This creates a button with the text "Click me". You can customize the text content between the opening and closing <button> tags.

Adding Functionality with JavaScript

Buttons become interactive with JavaScript. JavaScript provides functions to detect user actions like clicking the button. When a user clicks, the JavaScript function assigned to the button gets triggered. This function can then perform various actions like:

  • Triggering animations
  • Making calculations
  • Submitting forms
  • Changing content on the page

Linking the Button and JavaScript

There are two main ways to link the button to a JavaScript function:

  • onclick attribute
    Directly assign a JavaScript function name within the button tag itself using the onclick attribute.
<button onclick="myFunction()">Click me</button>

Here, clicking the button will call the myFunction() defined in your JavaScript code.

  • Event Listeners
    Attach an event listener using JavaScript to detect clicks. This offers more flexibility.

HTML

<button id="myButton">Click me</button>

JavaScript

const button = document.getElementById("myButton");

button.addEventListener("click", function() {
  // Your function to be executed on click
});

In this example, we select the button using its ID and then add an event listener for the "click" event. The provided function will be executed whenever the button is clicked.



  1. Simple Button with onclick attribute

HTML

<button onclick="showAlert()">Click me</button>

JavaScript

function showAlert() {
  alert("Button clicked!");
}
  1. Button changing content with JavaScript

This example has a button that changes the text of a paragraph element when clicked.

HTML

<p id="message">Click the button!</p>
<button onclick="changeMessage()">Change Text</button>

JavaScript

function changeMessage() {
  const paragraph = document.getElementById("message");
  paragraph.textContent = "Button clicked!";
}
  1. Button with Event Listener

This example uses an event listener to achieve the same functionality as example 2, but with a cleaner separation of HTML and JavaScript.

HTML

<p id="message">Click the button!</p>
<button id="changeButton">Change Text</button>
const button = document.getElementById("changeButton");
const paragraph = document.getElementById("message");

button.addEventListener("click", function() {
  paragraph.textContent = "Button clicked!";
});


  • Using <input> elements for buttons might not be ideal for accessibility, as screen readers might interpret them differently than standard buttons.
  • Styled <a> tags won't trigger the default button behavior (like form submission) unless you use JavaScript.