jquery,javascript:更改keyup上的输入值 - 将光标位置保持在最后但是

时间:2011-01-16 08:23:41

标签: javascript jquery cursor position

嘿伙计们, 我面临着一个令人讨厌的小问题,在我的情况下并不是真的用户友好。

用户可以使用向上和向下箭头键设置输入字段的值。 焦点始终设置为输入字段,因此用户可以在使用箭头键选择值后进行键入。

我希望光标位置始终保持输入值的最后一个字符,以便用户可以在通过箭头键选择值后立即键入。如果你按下向下箭头键就行了,因为在这种情况下,光标会自动跳转到输入框的末尾。

如果按向上键,则完全相反 - 光标跳到开头。 我能够通过stackoverflow上的“setCursorPosition”脚本修复它。

然而,尽管它正在工作,但用户却无法真正“感受和看到”它。如果我按向上箭头键,光标仍显示在输入值的开头。一旦我开始键入光标跳到最后,它就可以正常工作。

请在此处查看:http://jsfiddle.net/3UHVY/1/

所以我想知道你是否有一个解决方案,所以当我点击向上或向下箭头键时光标可能总是保留在输入框的末尾,并且它也是用户可见和逻辑的。现在用户可能认为他必须抓住鼠标并向右跳回输入框以将光标设置到最后。

1 个答案:

答案 0 :(得分:1)

您可以通过在按键上返回false来抑制浏览器的默认上行行为:

if(e.keyCode === 38)
    return false;

http://jsfiddle.net/3UHVY/5/

或者,如果这不能满足您的需求,您可以挂钩keyUp事件并将光标移动到输入的末尾。