Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
–
–
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;
–
–
–
–
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;
–
–
–
–
–
$('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.
–
Using the accepted answer on that post, you can call the function like this:
$(function() {
$('#textareaId').click(function() {
SelectText('#textareaId');
–
–
–
–