Виртуальная клавиатура jQuery - установите стрелку ВЛЕВО и стрелку вправо

Я потратил время на создание виртуальной клавиатуры jQuery, которая отображается, когда фокус установлен на Ввод. Я сделал почти все кнопки с клавиатуры, чтобы они работали, но я застрял, чтобы сделать функции для клавиш: Arrow Left и Arrow Right.

Пожалуйста, люди, которые лучше знают jQuery, помогите мне понять, как мне выполнять эти функции для стрелки влево и стрелки вправо. Как-то я понимаю, что нужно определить положение курсора в поле ввода и нужно как-то сдвинуть его на +1 или -1.

Образец сведений о моей виртуальной клавиатуре см. здесь.


Решено:
Я нашел правильное решение. Последний рабочий СКРИПТ находится здесь.


person Sergiu Costas    schedule 13.10.2013    source источник
comment
что-то вроде изменения положения курсора? Если да, эта ссылка может помочь вам Нажмите здесь   -  person Dvir    schedule 14.10.2013
comment
для перемещения курсора влево и вправо внутри ввода   -  person Sergiu Costas    schedule 14.10.2013
comment
или вы можете использовать jquery Caret   -  person Dvir    schedule 14.10.2013
comment
Думаю, это сложнее, чем установить позицию курсора. Функция должна найти, где находится курсор в данный момент, а затем изменить позицию с помощью символа +1 или -1. Я понимаю, что Карет может помочь. Но у меня недостаточно опыта, чтобы понять, как заставить функцию работать так, как я описал выше. Большое спасибо за ваши старания !!!   -  person Sergiu Costas    schedule 14.10.2013
comment
Верно. И это то, что вам нужно. Вы можете использовать их код. просто посмотрите, как они это реализовали. кстати, клавиатура выглядит неплохо;]   -  person Dvir    schedule 14.10.2013
comment
Я пробовал сегодня CARET - но я не могу понять, как я могу переместить курсор из текущей позиции на один символ влево или вправо ... единственное, что я мог бы получить, чтобы переместить курсор в НАЧАЛО или в КОНЕЦ ВВОДА ...   -  person Sergiu Costas    schedule 14.10.2013
comment
Можно ли создать букмарклет или библиотеку js из tge выше jsfiddle? Как?   -  person user1788736    schedule 18.01.2018
comment
@ user1788736 - Раньше не успел собрать JS библиотеку. Я просто создаю клавиатуру по коду. Если вам все еще нужно, мы можем поговорить отдельно о моем опыте :) pasteboard.co/H8v75Nt.png   -  person Sergiu Costas    schedule 20.02.2018


Ответы (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

person Dvir    schedule 13.10.2013
comment
Большое спасибо за ваш пост - я его уже встречал. В этом примере показано, как установить курсор в позицию 4 ... но мне нужен способ, как определить текущую позицию и переместить курсор в другую позицию ... ваш пример может быть полезен во второй части ... когда, Я знаю, где находится курсор, а затем, чтобы перейти с текущей позиции на позицию, которую я хотел бы ... - person Sergiu Costas; 14.10.2013
comment
см. мой обновленный человек ... Если мой ответ помог вам, вы можете принять:] в любом случае, в следующий раз, когда небольшой поиск в Google решит вашу проблему за 2 минуты, как я. - person Dvir; 14.10.2013