我有以下问题。在作为自动完成器工作的文本输入字段中,它返回的一些建议比它更好。离开现场时会出现问题。在IE中,文本光标位于建议字符串的末尾,因此您实际上只能看到它的最后部分。所以我使用下面的代码修复它,它在IE6下工作,但在IE8中这不起作用,字段总是被选中,我不能在页面上选择任何东西。
我的问题是,在我离开之后,在输入字段的开头移动光标的正确方法是什么?
$('#myAutocompleter').blur(function(){ textRange = this.createTextRange(); textRange.collapse(true); textRange.select(); });
(使用的代码是用jQuery编写的。)
答案 0 :(得分:3)
我相信你要找的是文本范围的.moveStart
和.moveEnd
方法:
$('#myAutocompleter').blur(function(){
textRange = this.createTextRange();
textRange.collapse(true);
textRange.moveEnd('character',0);
textRange.moveStart('character',0);
textRange.select();
});
(在IE8中测试功能)
答案 1 :(得分:0)
我不确定我理解你的问题,但IE有自己的一套方法来处理页面上的文本选择,所以这就是为什么它的行为不同。
在这里查看教程: http://www.quirksmode.org/dom/range_intro.html
这里的兼容性: http://www.quirksmode.org/dom/w3c_range.html
如果这不是您的问题,请尝试在模糊内部执行鼠标或单击事件检查并将选择代码放在那里?也许这会导致选择在放置到选择位置之前远离输入字段。
答案 2 :(得分:0)
我有类似的情况,我希望根据这样的事情看到某些东西的顶部/底部。 我使用了jQuery scrollTo插件
).scrollTo('100%')
).scrollTo('0%')
编辑1: 我在这个领域使用它:
<textarea cols="57" rows="2" class="cssTextarea cptEntryArea"></textarea>
使用此代码:
$(".cptEntryArea").change(function()
{
$(this).scrollTo('0%');
});