如何在TEXTAREA中设置光标?(通过不使用jQuery)

Bri*_*awk 11 html javascript firefox textarea

有没有办法在TEXTAREA标签的末尾设置光标?我正在使用Firefox 3.6,我不需要它在IE或Chrome中工作.JavaScript还可以,但似乎所有相关的答案都在这里使用onfocus()事件,这似乎没用,因为当用户点击textarea中的任何地方时,Firefox会将光标位置设置为那里.我有一个长文本显示在textarea中,以便它显示最后一部分(使得在最后添加一些东西更容易).

Dr.*_*lle 20

可能有很多方法,例如

element.focus();
element.setSelectionRange(element.value.length,element.value.length);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/doktormolle/GSwfW/


小智 14

SelectionStart 足以设置初始光标点。

    element.focus();
    element.selectionStart = element.value.length;
Run Code Online (Sandbox Code Playgroud)


小智 5

自从我在没有首先查看jQuery解决方案的情况下使用javascript以来已经很长时间了......

话虽这么说,使用javascript的最佳方法是获取当前在textarea中的值,并将textarea的值设置为抓取的值.这总是适用于jQuery:

$('textarea').focus(function() {
    var theVal = $(this).val();
    $(this).val(theVal);
});
Run Code Online (Sandbox Code Playgroud)

在普通的JavaScript中:

var theArea = document.getElementByName('[textareaname]');

theArea.onFocus = function(){
    var theVal = theArea.value;
    theArea.value = theVal;
}
Run Code Online (Sandbox Code Playgroud)

我错了.有点生锈.