jQuery – 从textarea中select所有文本

我怎样才能做到这一点,当你点击一个textarea内,其整个内容被选中?

最后当你再次点击时,取消select它。

为了防止用户在每次尝试使用鼠标移动插入符号时select整个文本时感到恼火,应该使用focus事件而不是click事件来执行此操作。 以下内容将完成这项工作,并围绕Chrome中的一个问题开展工作,这个问题阻止了最简单的版本(即只是在focus事件处理程序中调用textarea的select()方法)。

jsFiddle: http : //jsfiddle.net/NM62A/

码:

 <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版本:

 $("#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; }); }); 

更好的方式,解决选项卡和铬的问题和新的jQuery的方式

 $("#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; }); } }); 

我结束了使用这个:

 $('.selectAll').toggle(function() { $(this).select(); }, function() { $(this).unselect(); }); 

稍微短一点的jQuery版本:

 $('your-element').focus(function(e) { e.target.select(); jQuery(e.target).one('mouseup', function(e) { e.preventDefault(); }); }); 

它正确处理Chrome的angular落案件。 例如,请参阅http://jsfiddle.net/Ztyx/XMkwm/

 $('textarea').focus(function() { this.select(); }).mouseup(function() { return false; }); 

在元素中select文本(类似于用鼠标突出显示)

🙂

使用该post的接受答案,你可以调用这样的function:

 $(function() { $('#textareaId').click(function() { SelectText('#textareaId'); }); });