0

我花时间创建了一个 jQuery 虚拟键盘,当焦点设置为输入时它会显示它。我几乎完成了从键盘到工作的所有按钮,但我坚持为键制作功能:Arrow LeftArrow Right.

请了解更好 jQuery 的人帮助我了解如何为左箭头和右箭头执行这些功能。不知何故,我知道需要在输入字段中识别光标的位置,并且需要以某种方式将其移动 +1 或 -1。

有关我的虚拟键盘的示例详细信息,请查看此处


已解决:
我找到了正确的解决方案。最终的工作脚本在这里

4

1 回答 1

1

这里有一个例子:

function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}

function setCaretToPos (input, pos) {
  setSelectionRange(input, pos, pos);
}

归功于:来自这篇文章的CMS

编辑:

function getCaretPos(input) {
    // Internet Explorer Caret Position (TextArea)
    if (document.selection && document.selection.createRange) {
        var range = document.selection.createRange();
        var bookmark = range.getBookmark();
        var caret_pos = bookmark.charCodeAt(2) - 2;
    } else {
        // Firefox Caret Position (TextArea)
        if (input.setSelectionRange)
            var caret_pos = input.selectionStart;
    }

    return caret_pos;
}

这篇文章归功于 Pandincus

jsFiddle

于 2013-10-13T21:02:40.000 回答