2

我有以下问题。在作为自动完成器工作的文本输入字段中,它返回的一些建议比它更枯燥。当您离开该领域时,问题就来了。在 IE 中,文本光标位于建议字符串的末尾,因此您实际上只能看到它的最后一部分。所以我使用下面的代码来解决这个问题,它在 IE6 下工作,但在 IE8 中这不起作用,该字段始终处于选中状态,我无法在页面上选择任何内容。

我的问题是在我离开后将光标移动到输入字段开头的正确方法是什么?

$('#myAutocompleter').blur(function(){
  textRange = this.createTextRange();
  textRange.collapse(true);
  textRange.select();
});

(使用的代码是用 jQuery 编写的。)

4

3 回答 3

3

我相信您正在寻找的是文本范围的.moveStart和方法:.moveEnd

$('#myAutocompleter').blur(function(){
  textRange = this.createTextRange();
  textRange.collapse(true);
  textRange.moveEnd('character',0);
  textRange.moveStart('character',0);
  textRange.select();
});

(在 IE8 中测试功能)

于 2009-12-15T01:17:44.123 回答
0

我不确定我是否理解你的问题,但 IE 有一套自己的方法来处理页面上的文本选择,所以这就是它表现不同的原因。

在此处查找教程: http ://www.quirksmode.org/dom/range_intro.html

这里是为了兼容性: http ://www.quirksmode.org/dom/w3c_range.html

如果这不是您的问题,请尝试在模糊中执行 mouseup 或单击事件检查并将选择代码放在那里?也许这会导致选择从输入字段移开,然后再将其放置在选择所在的位置。

于 2009-10-25T15:15:24.897 回答
0

我有类似的情况,我想根据这样的事情查看某物的顶部/底部。我使用了 jQuery scrollTo 插件

).scrollTo('100%')

).scrollTo('0%')

编辑1:我在这个领域使用它:

<textarea cols="57" rows="2" class="cssTextarea cptEntryArea"></textarea>

使用此代码:

  $(".cptEntryArea").change(function()
        {
           $(this).scrollTo('0%');
   });
于 2009-10-28T14:03:11.750 回答