JavaScript在html文本框中设置键盘插入符的位置

JavaScript在html文本框中设置键盘插入符的位置,第1张

JavaScript在html文本框中设置键盘插入符的位置

摘自Josh Stodola的使用Javascript在Textbox或textarea中设置键盘插入符号的位置

通用功能,可让您在所需的文本框或文本区域的任何位置插入插入符号:

function setCaretPosition(elemId, caretPos) {    var elem = document.getElementById(elemId);    if(elem != null) {        if(elem.createTextRange) { var range = elem.createTextRange(); range.move('character', caretPos); range.select();        }        else { if(elem.selectionStart) {     elem.focus();     elem.setSelectionRange(caretPos, caretPos); } else     elem.focus();        }    }}

第一个预期参数是您希望插入键盘插入符号的元素的ID。如果找不到该元素,则不会发生任何事情(显然)。第二个参数是插入号位置索引。零将把键盘插入符号放在开头。如果您传递的数字大于elements值中的字符数,它将把键盘插入符号放在最后。

在IE6及更高版本,Firefox 2,Opera8,Netscape9,SeaMonkey和Safari上进行了测试。不幸的是,在Safari上,它无法与onfocus事件结合使用。

使用上述功能强制键盘插入符号在获得焦点时跳至页面上所有文本区域的末尾的示例:

function addLoadEvent(func) {    if(typeof window.onload != 'function') {        window.onload = func;    }    else {        if(func) { var oldLoad = window.onload; window.onload = function() {     if(oldLoad)  oldLoad();     func(); }        }    }}// The setCaretPosition function belongs right here!function settextareasonFocus() {    var textareas = document.getElementsByTagName('textarea');    for(var i = 0; i < textareas.length; i++) {        textareas[i].onfocus = function() { setCaretPosition(this.id, this.value.length);        }    }    textareas = null;}addLoadEvent(settextareasOnFocus);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5147620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存