Javascript:将脱字符移至最后一个字符
我有一个textarea,当我点击它时,我想把脱字符移到最后一个字符那么Something[caret]
function moveCaret(){ // Move caret to the last character }
<textarea onclick="moveCaret();"> Something </textarea>
我知道这是TextRange对象的某种可能性,但我真的不知道如何使用它
编辑:我很想看到只有纯粹的JavaScript解决scheme,所以没有图书馆,请。
以下function可以在所有主stream浏览器中使用,包括textareas和文本input:
function moveCaretToEnd(el) { if (typeof el.selectionStart == "number") { el.selectionStart = el.selectionEnd = el.value.length; } else if (typeof el.createTextRange != "undefined") { el.focus(); var range = el.createTextRange(); range.collapse(false); range.select(); } }
但是,当用户点击textarea时,你确实不应该这样做,因为用户将无法用鼠标移动插入符号。 相反,当textarea收到焦点时就做。 Chrome中也有一个问题,可以解决,如下所示:
完整的例子: http : //www.jsfiddle.net/ghAB9/3/
HTML:
<textarea id="test">Something</textarea>
脚本:
var textarea = document.getElementById("test"); textarea.onfocus = function() { moveCaretToEnd(textarea); // Work around Chrome's little problem window.setTimeout(function() { moveCaretToEnd(textarea); }, 1); };