Is there a function to deselect all text using JavaScript? Is there a function to deselect all text using JavaScript? javascript javascript

Is there a function to deselect all text using JavaScript?


Try this:

function clearSelection(){ if (window.getSelection) {window.getSelection().removeAllRanges();} else if (document.selection) {document.selection.empty();}}

This will clear a selection in regular HTML content in any major browser. It won't clear a selection in a text input or <textarea> in Firefox.


Here's a version that will clear any selection, including within text inputs and textareas:

Demo: http://jsfiddle.net/SLQpM/23/

function clearSelection() {    var sel;    if ( (sel = document.selection) && sel.empty ) {        sel.empty();    } else {        if (window.getSelection) {            window.getSelection().removeAllRanges();        }        var activeEl = document.activeElement;        if (activeEl) {            var tagName = activeEl.nodeName.toLowerCase();            if ( tagName == "textarea" ||                    (tagName == "input" && activeEl.type == "text") ) {                // Collapse the selection to the end                activeEl.selectionStart = activeEl.selectionEnd;            }        }    }}


For Internet Explorer, you can use the empty method of the document.selection object:

document.selection.empty();

For a cross-browser solution, see this answer:

Clear a selection in Firefox