如何使用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) 通过JavaScript将光标放在输入文本元素中文本末尾的最佳方法(我假设最简单的方法)是什么?在焦点设置为元素之后?
可能重复:
Javascript:将插入符号移到最后一个字符
我有一个标准的textarea,里面有一些文字.我正在寻找一种方法让光标自动放在现有文本的末尾,这样用户就可以简单地开始输入以添加更多文本.每当textarea变为活动状态时(例如当用户选中它时)就会发生这种情况.有任何想法吗?
当我尝试这样做时,.focus()
我希望将焦点设置在输入元素上,并在值的最后一个字符后面看光标.我在IE中看到它.
在safari/chrome输入中获得焦点并选择所有文本.在firefox/opera中输入获得焦点,但光标在开头.
我该怎么做才能防止这种情况并为所有浏览器获得正确的行为?
这里有一个例子:http://jsbin.com/ozojol/edit#javascript,html
PS.focus().val('').val(value)
方法在IE中不起作用...还存在哪些其他解决方法?
我有一个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的末尾.