这个问题已经被问了几种不同的格式,但我无法在我的场景中得到任何答案。
当用户点击向上/向下箭头时,我使用jQuery实现命令历史记录。当点击向上箭头时,我将输入值替换为上一个命令,并将焦点设置在输入字段上,但希望光标始终位于输入字符串的末尾。
我的代码如下:
$(document).keydown(function(e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
var input = self.shell.find('input.current:last');
switch(key) {
case 38: // up
lastQuery = self.queries[self.historyCounter-1];
self.historyCounter--;
input.val(lastQuery).focus();
// and it continues on from there
如何强制将光标放在焦点之后的“input”末尾?
发布于 2011-12-26 06:30:43
看起来像是在聚焦后清除该值,然后重置。
input.focus();
var tmpStr = input.val();
input.val('');
input.val(tmpStr);
发布于 2009-06-29 03:08:15
这看起来有点奇怪,甚至有点愚蠢,但这对我来说很有效:
input.val(lastQuery);
input.focus().val(input.val());
现在,我不确定我是否复制了你的设置。我假设input
是一个<input>
元素。
通过重新设置值(设置为自身),我认为光标将被放在输入的末尾。在Firefox3和MSIE7上测试过。
发布于 2014-04-24 14:26:22
希望这能对你有所帮助:
var fieldInput = $('#fieldName');
var fldLength= fieldInput.val().length;
fieldInput.focus();
fieldInput[0].setSelectionRange(fldLength, fldLength);
https://stackoverflow.com/questions/1056359
复制相似问题