相关疑难解决方法(0)

jQuery在文本区域中设置光标位置

如何使用jQuery在文本字段中设置光标位置?我有一个包含内容的文本字段,我希望用户光标在关注字段时定位在某个偏移处.代码应该看起来像这样:

$('#input').focus(function() {
  $(this).setCursorPosition(4);
});
Run Code Online (Sandbox Code Playgroud)

setCursorPosition函数的实现是什么样的?如果您有一个内容为abcdefg的文本字段,则此调用将导致光标定位如下:abcd**|**efg.

Java有一个类似的功能,setCaretPosition.javascript是否存在类似的方法?

更新:我修改了CMS的代码以使用jQuery,如下所示:

new function($) {
  $.fn.setCursorPosition = function(pos) {
    if (this.setSelectionRange) {
      this.setSelectionRange(pos, pos);
    } else if (this.createTextRange) {
      var range = this.createTextRange();
      range.collapse(true);
      if(pos < 0) {
        pos = $(this).val().length + pos;
      }
      range.moveEnd('character', pos);
      range.moveStart('character', pos);
      range.select();
    }
  }
}(jQuery);
Run Code Online (Sandbox Code Playgroud)

html javascript jquery textfield

434
推荐指数
10
解决办法
33万
查看次数

使用JavaScript将光标放在文本输入元素中的文本末尾

通过JavaScript将光标放在输入文本元素中文本末尾的最佳方法(我假设最简单的方法)是什么?在焦点设置为元素之后?

javascript

291
推荐指数
15
解决办法
29万
查看次数

选中时如何将光标放在textarea中的文本末尾

可能重复:
Javascript:将插入符号移到最后一个字符

我有一个标准的textarea,里面有一些文字.我正在寻找一种方法让光标自动放在现有文本的末尾,这样用户就可以简单地开始输入以添加更多文本.每当textarea变为活动状态时(例如当用户选中它时)就会发生这种情况.有任何想法吗?

javascript textarea

10
推荐指数
2
解决办法
3万
查看次数

jQuery .focus()在每个浏览器中的工作方式不同.怎么预防?

当我尝试这样做时,.focus()我希望将焦点设置在输入元素上,并在值的最后一个字符后面看光标.我在IE中看到它.

在safari/chrome输入中获得焦点并选择所有文本.在firefox/opera中输入获得焦点,但光标在开头.

我该怎么做才能防止这种情况并为所有浏览器获得正确的行为?

这里有一个例子:http://jsbin.com/ozojol/edit#javascript,html

PS.focus().val('').val(value)方法在IE中不起作用...还存在哪些其他解决方法?

javascript jquery focus

5
推荐指数
1
解决办法
987
查看次数

用jQuery替换HTML后如何将光标放在文本的末尾?

我有一个contenteditable div并尝试<font><span>标签替换标签但是在使用jQuery替换html之后,replaceWith()函数游标默认为文本的开头,但我希望它在替换html的末尾.

这是重现问题的DEMO.如果再现问题,请告诉我.

这是演示代码要点

<div id="test" contenteditable=true>
  <p> <font color="blue">Text to be replaced</font> </p>
</div>
<a id="replace" href="javascript:void(null);">replace</a>
Run Code Online (Sandbox Code Playgroud)

JS代码

$('#test').focus();
$('#replace').on({
  mousedown: function (event) {
    event.preventDefault();
  },
  click: function () {
    $('#test').find('font').replaceWith(function () {
      return '<span style="color:red">' + 'New Text' + '</span>'
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

编辑:这里的问题可能听起来重复,但它确实不同,因为你看到内容被取代.我可能正在替换用户选择的文本部分而不是整个文本.所以我需要将光标放在替换原始html的html的末尾.

javascript jquery content-editor contenteditable

3
推荐指数
1
解决办法
3175
查看次数