HTMLInputElement.setSelectionRange()

The HTMLInputElement.setSelectionRange() method sets the start and end positions of the current text selection in an <input> element.

Optionally, in newer browser versions, you can specify the direction in which selection should be considered to have occurred; this lets you indicate, for example, that the selection as set by the user clicking and dragging from the end of the selected text toward the beginning.

This method updates HTMLInputElement.selectionStart, selectionEnd, and selectionDirection in one call.

Syntax

inputElement.setSelectionRange(selectionStart, selectionEnd, [optional] selectionDirection);

Parameters

selectionStart
The 0-based index of the first selected character.
selectionEnd
The 0-based index of the character after the last selected character.
selectionDirection Optional
A string indicating the direction in which the selection is performed. This string can be "forward" or "backward", or "none" if the direction is unknown or irrelevant.

Example

The following code:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>JS Bin</title>
<script>
function SelectText () {
        var input = document.getElementById("mytextbox");
            input.focus();
            input.setSelectionRange(2,5);
}
</script>
</head>
<body>
  <p><input type="text" id="mytextbox" size="20" value="Mozilla"/></p>
  <p><button onclick="SelectText()">Select text</button></p>
</body>
</html>

will produce the following:

example.png

Specifications

Specification Status Comment
WHATWG HTML Living Standard
The definition of 'HTMLInputElement.setSelectionRange()' in that specification.
Living Standard No change
HTML 5.1
The definition of 'HTMLInputElement.setSelectionRange()' in that specification.
Recommendation No change
HTML5
The definition of 'HTMLInputElement.setSelectionRange()' in that specification.
Recommendation Initial definition

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 (Yes) 1.0 (1.7 or earlier) 9 8.0 (Yes)
selectionDirection 15[1] (Yes) 8.0 (8.0)[2] ? ? (Yes)[3]
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? (Yes) ? ? ? ?
selectionDirection ? (Yes) 8.0 (8.0)[2] ? ? ?

[1] The support for selectionDirection was added Blink in WebKit bug 60403.

Note that accordingly to the WHATWG forms spec selectionStart, selectionEnd properties and setSelectionRange method apply only to inputs of types text, search, URL, tel and password. Chrome, starting from version 33, throws an exception while accessing those properties and method on the rest of input types. For example, on input of type number: "Failed to read the 'selectionStart' property from 'HTMLInputElement': The input element's type ('number') does not support selection." Related links: question on StackOverflow, whatwg bug, Chromium bug.

[2] The support for selectionDirection was added to Gecko in bug 674558.

[3] The support for selectionDirection was added Webkit in WebKit bug 60403.

See also