首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery设置鼠标焦点并将光标移动到输入的末尾

使用jQuery设置鼠标焦点并将光标移动到输入的末尾
EN

Stack Overflow用户
提问于 2009-06-29 10:39:51
回答 16查看 162.1K关注 0票数 100

这个问题已经被问了几种不同的格式,但我无法在我的场景中得到任何答案。

当用户点击向上/向下箭头时,我使用jQuery实现命令历史记录。当点击向上箭头时,我将输入值替换为上一个命令,并将焦点设置在输入字段上,但希望光标始终位于输入字符串的末尾。

我的代码如下:

代码语言:javascript
复制
$(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”末尾?

EN

回答 16

Stack Overflow用户

发布于 2011-12-26 06:30:43

看起来像是在聚焦后清除该值,然后重置。

代码语言:javascript
复制
input.focus();
var tmpStr = input.val();
input.val('');
input.val(tmpStr);
票数 150
EN

Stack Overflow用户

发布于 2009-06-29 03:08:15

这看起来有点奇怪,甚至有点愚蠢,但这对我来说很有效:

代码语言:javascript
复制
input.val(lastQuery);
input.focus().val(input.val());

现在,我不确定我是否复制了你的设置。我假设input是一个<input>元素。

通过重新设置值(设置为自身),我认为光标将被放在输入的末尾。在Firefox3和MSIE7上测试过。

票数 56
EN

Stack Overflow用户

发布于 2014-04-24 14:26:22

希望这能对你有所帮助:

代码语言:javascript
复制
var fieldInput = $('#fieldName');
var fldLength= fieldInput.val().length;
fieldInput.focus();
fieldInput[0].setSelectionRange(fldLength, fldLength);
票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1056359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档