我花了一些时间来创建一个jQuery虚拟键盘,它在焦点设置为输入时显示。我几乎从键盘上做了所有按钮工作,但我坚持为按键创建功能:Arrow Left
和Arrow Right
。
请那些了解更好jQuery的人帮助我理解如何为Arrow left和Arrow右边做这些功能。不知何故,我明白需要在输入字段中识别光标的位置,并且需要以某种方式将其移动到+1或-1。
有关我的虚拟键盘的示例详细信息,请查看here。
解决:
我找到了正确的解决方案。
最终工作SCRIPT is here。
答案 0 :(得分: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);
}
归功于:来自this post的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