2009-12-08 67 views

回答

20

IE使用不同的方法来设置光标位置比Firefox,Opera和Chrome。做一个辅助函数会更好,它会为你做。我用这个来满足自己的需要。

function setCursor(node,pos){ 

    node = (typeof node == "string" || node instanceof String) ? document.getElementById(node) : node; 

    if(!node){ 
     return false; 
    }else if(node.createTextRange){ 
     var textRange = node.createTextRange(); 
     textRange.collapse(true); 
     textRange.moveEnd(pos); 
     textRange.moveStart(pos); 
     textRange.select(); 
     return true; 
    }else if(node.setSelectionRange){ 
     node.setSelectionRange(pos,pos); 
     return true; 
    } 

    return false; 
} 

最后一件事,就是从你的onfocus处理程序调用它。

Goodluck

+0

Hai什么是nodebox它是textboxId – 2009-12-09 03:28:50

+0

node是DOM实例,但是如果你需要使用id的话,你可以添加额外的“codeline”来为你提取DOM实例。 – nemisj 2009-12-09 09:07:23

+0

由于DSharma建议(回滚编辑,它应该是一个注释):为了使它适用于所有浏览器,如果要将光标置于输入文本的开头处,请为函数调用添加超时。例如:'window.setTimeout(function(){setCursor(node,0);},1);' – thomaux 2014-01-10 13:25:11

0

$("#textbox").selectionStart=14威力适用于Firefox,歌剧,浏览器,但不知道对IE

PS:应该有长度已经14>字符在文本框才能正常工作。

+0

我使用一个蒙版编辑文本框... – 2009-12-08 08:50:35

+0

标记文本框将是空的有没有任何解决方案 – 2009-12-08 08:58:25

+0

是的,它的输入框和textarea,如果你的是富文本框,我不知道它。对于那个很抱歉。 – YOU 2009-12-08 09:02:50

相关问题