How can I make it so when you click inside a textarea, its entire content gets selected?
And eventually when you click again, to deselect it.
How can I make it so when you click inside a textarea, its entire content gets selected?
And eventually when you click again, to deselect it.
To stop the user from getting annoyed when the whole text gets selected every time they try to move the caret using their mouse, you should do this using the focus event, not the click event. The following will do the job and works around a problem in Chrome that prevents the simplest version (i.e. just calling the textarea's select() method in a focus event handler) from working.
jsFiddle: http://jsfiddle.net/NM62A/
Code:
<textarea id="foo">Some text</textarea> <script type="text/javascript"> var textBox = document.getElementById("foo"); textBox.onfocus = function() { textBox.select(); // Work around Chrome's little problem textBox.onmouseup = function() { // Prevent further mouseup intervention textBox.onmouseup = null; return false; }; }; </script> jQuery version:
$("#foo").focus(function() { var $this = $(this); $this.select(); // Work around Chrome's little problem $this.mouseup(function() { // Prevent further mouseup intervention $this.unbind("mouseup"); return false; }); }); tab into the textarea - the your other solution works for both cases :)$("#foo").mouseup(function() { $("#foo").unbind("mouseup"); return false; }); you need to refer the textbox without using this just refer it with full path.. and it will work..Better way, with solution to tab and chrome problem and new jquery way
$("#element").on("focus keyup", function(e){ var keycode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode; if(keycode === 9 || !keycode){ // Hacemos select var $this = $(this); $this.select(); // Para Chrome's que da problema $this.on("mouseup", function() { // Unbindeamos el mouseup $this.off("mouseup"); return false; }); } }); I ended up using this:
$('.selectAll').toggle(function() { $(this).select(); }, function() { $(this).unselect(); }); readonly attribute then.Slightly shorter jQuery version:
$('your-element').focus(function(e) { e.target.select(); jQuery(e.target).one('mouseup', function(e) { e.preventDefault(); }); }); It handles the Chrome corner case correctly. See http://jsfiddle.net/Ztyx/XMkwm/ for an example.
disabled attribute in my <textarea disabled>test</textarea>, but it's not working, so how to fix it?Selecting text in an element (akin to highlighting with your mouse)
:)
Using the accepted answer on that post, you can call the function like this:
$(function() { $('#textareaId').click(function() { SelectText('#textareaId'); }); }); $(this).select(), I'll use that because it's less code :)