HTML onselect Event Attribute

The HTML onselect event attribute is triggered when a user selects text within certain HTML elements. This event works primarily with form elements that contain editable text, such as <input> and <textarea> elements.

Syntax

Following is the syntax for the onselect event attribute −

<tagname onselect="script">Content</tagname>

Where script is the JavaScript code to execute when text selection occurs.

Supported Elements

The onselect event attribute works with the following HTML elements −

  • <input type="text"> − Single-line text input fields

  • <input type="password"> − Password input fields

  • <input type="search"> − Search input fields

  • <textarea> − Multi-line text input areas

Note − The onselect event does not work with other HTML elements like <div>, <p>, or <span>.

Basic Example with Textarea

Following example demonstrates the onselect event with a textarea element −

<!DOCTYPE html>
<html>
<head>
   <title>HTML onselect Event Example</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Select Text in the Textarea</h2>
   <textarea onselect="showAlert()" rows="4" cols="50" style="padding: 10px;">Select any part of this text to trigger the onselect event. Try selecting different portions!</textarea>
   <p id="message"></p>
   
   <script>
      function showAlert() {
         document.getElementById("message").innerHTML = "Text selected! Event triggered.";
         document.getElementById("message").style.color = "green";
      }
   </script>
</body>
</html>

When you select text in the textarea, the message "Text selected! Event triggered." appears in green below the textarea.

Example with Input Field

Following example shows the onselect event working with a text input field −

<!DOCTYPE html>
<html>
<head>
   <title>onselect with Input Field</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Text Selection Counter</h2>
   <label for="textInput">Enter some text:</label>
   <input type="text" id="textInput" onselect="countSelection()" value="Hello World! Select me!" style="width: 300px; padding: 8px; margin: 10px 0;">
   <p>Selection count: <span id="counter">0</span></p>
   
   <script>
      let count = 0;
      function countSelection() {
         count++;
         document.getElementById("counter").textContent = count;
      }
   </script>
</body>
</html>

Each time you select text in the input field, the counter increments to show how many times the onselect event has been triggered.

Advanced Example with Selection Details

Following example demonstrates how to get details about the selected text −

<!DOCTYPE html>
<html>
<head>
   <title>Selection Details</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Text Selection Details</h2>
   <textarea id="myTextarea" onselect="showSelectionDetails()" rows="5" cols="60" style="padding: 10px; margin: 10px 0;">JavaScript is a versatile programming language used for web development. Select any part of this text to see selection details.</textarea>
   
   <div id="details" style="background: #f0f0f0; padding: 15px; border-radius: 5px;">
      <p><b>Selected Text:</b> <span id="selectedText">None</span></p>
      <p><b>Selection Start:</b> <span id="selectionStart">0</span></p>
      <p><b>Selection End:</b> <span id="selectionEnd">0</span></p>
      <p><b>Selection Length:</b> <span id="selectionLength">0</span></p>
   </div>
   
   <script>
      function showSelectionDetails() {
         const textarea = document.getElementById("myTextarea");
         const selectedText = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd);
         const start = textarea.selectionStart;
         const end = textarea.selectionEnd;
         const length = selectedText.length;
         
         document.getElementById("selectedText").textContent = selectedText || "None";
         document.getElementById("selectionStart").textContent = start;
         document.getElementById("selectionEnd").textContent = end;
         document.getElementById("selectionLength").textContent = length;
      }
   </script>
</body>
</html>

This example displays the selected text, its start and end positions, and the length of the selection whenever text is selected in the textarea.

onselect Event Flow User selects text onselect triggered Script executes Supported elements: ? <input type="text"> ? <input type="password"> ? <textarea> Common use cases: ? Text formatting tools ? Selection counters ? Copy/paste features

Event Object Properties

When using the onselect event with JavaScript, you can access additional properties through the event object −

Example

<!DOCTYPE html>
<html>
<head>
   <title>Event Object Properties</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Event Object Information</h2>
   <input type="text" id="eventInput" value="Select text to see event details" style="width: 300px; padding: 8px; margin: 10px 0;">
   <div id="eventInfo" style="background: #f9f9f9; padding: 10px; margin: 10px 0; border-left: 4px solid #007bff;">
      <p id="eventType"></p>
      <p id="targetElement"></p>
   </div>
   
   <script>
      document.getElementById("eventInput").onselect = function(event) {
         document.getElementById("eventType").textContent = "Event Type: " + event.type;
         document.getElementById("targetElement").textContent = "Target Element: " + event.target.tagName;
      };
   </script>
</body>
</html>

This example shows how to access the event type and target element information when the onselect event occurs.

Browser Compatibility

The onselect event attribute is widely supported across modern browsers. It works consistently in −

  • Chrome (all versions)

  • Firefox (all versions)

  • Safari (all versions)

  • Edge (all versions)

  • Internet Explorer 9+

Common Use Cases

The onselect event is commonly used in the following scenarios −

  • Text editors − To enable formatting options when text is selected

  • Form validation − To provide real-time feedback on selected content

  • Copy/paste functionality − To trigger custom clipboard operations

  • Analytics − To track user interaction with text content

  • Accessibility features − To provide audio feedback for selected text

Conclusion

The HTML onselect event attribute provides a way to respond when users select text in input fields and textarea elements. It enables interactive features like text formatting tools, selection counters, and custom clipboard operations. The event works reliably across all modern browsers and integrates seamlessly with JavaScript for enhanced user experiences.

Updated on: 2026-03-16T21:38:54+05:30

226 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements