Home > Web Front-end > JS Tutorial > How Can I Programmatically Position the Cursor in an HTML Textbox?

How Can I Programmatically Position the Cursor in an HTML Textbox?

DDD
Release: 2024-12-10 12:40:14
Original
1044 people have browsed it

How Can I Programmatically Position the Cursor in an HTML Textbox?

Positioning Keyboard Caret in HTML Textboxes

To move the keyboard caret within a textbox, a specific position can be targeted using JavaScript.

Generic Function:

function setCaretPosition(elemId, caretPos) {
    var elem = document.getElementById(elemId);
    if (elem) {
        if (elem.createTextRange) {  // IE specific
            var range = elem.createTextRange();
            range.move('character', caretPos);
            range.select();
        } else if (elem.selectionStart) {
            elem.focus();
            elem.setSelectionRange(caretPos, caretPos);
        } else {
            elem.focus();  // Fallback for browsers not supporting setSelectionRange
        }
    }
}
Copy after login

Usage:

  • elemId: ID of the textbox to target
  • caretPos: Desired caret position (characters from the beginning)

Example:

To set the caret before character 20 in a textbox with 50 characters:

setCaretPosition('myTextbox', 20);
Copy after login

Compatibility:

  • Tested on IE6 , Firefox 2, Opera 8, Netscape 9, SeaMonkey, and Safari (except for Safari in combination with onfocus)

Additional Notes:

You can also force the caret to jump to the end of all textareas on page focus using this code (within the addLoadEvent function):

for (var i = 0; i < textAreas.length; i++) {
    textAreas[i].onfocus = function() {
        setCaretPosition(this.id, this.value.length);
    }
}
Copy after login

The above is the detailed content of How Can I Programmatically Position the Cursor in an HTML Textbox?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template