Я хочу, чтобы мой вклад был написан влево

Я знаю, что это возможно в javascript с помощью метода window.getSelection(), но я не знаком с этим объектом выбора. Можете ли вы помочь мне написать код, чтобы пользовательский курсор ввода всегда был в начале строки ввода?

$('input[type="text"]')
    .attr('maxlength','7')
    .keyup(function(){
        var sel = window.getSelection();
        console.log(sel);
        // need a code for here to make the cursor (caret) at the begining of the string

    })

3 ответа

Решение

Может быть сделано с помощью комбинации из:

  • dir = "rtl"
  • перемещение каретки текстового поля в 0 после каждого нажатия клавиши

Демо: http://jsfiddle.net/FF9Tf/1/

Примечание: использует подсказки / код из этих ответов.

Вы всегда можете использовать CSS direction: rtl; эта строка кода просто меняет направление текста справа налево, а затем вы можете просто добавить класс CSS к своим элементам HTML, используя .addClass("your_class")

Важно отметить, что этот метод не заменяет класс. Он просто добавляет класс, добавляя его к любому, который уже может быть назначен элементам.

Изменить: попробуйте положить .addClass("your_class") вне функции keyup (хотя это может не дать вам наилучшего результата, который вы ищете), проверьте мой комментарий ниже, чтобы найти лучший способ сделать это.

Обновление: вот еще один способ сделать это

$('input[type="text"]').change(function () {
$(this).val() = $(this).split("").reverse().join("");
});

Попробуйте это, он будет держать курсор мигать в начале текста в поле ввода

$('input[type="text"]')
    .attr('maxlength','7')
    .attr('dir', "rtl")
    .keyup(function(){
        var sel = window.getSelection();
        console.log(sel);
        // need a code for here to make the cursor (caret) at the begining of the string

    })

попробуйте демонстрационную ссылку http://jsfiddle.net/hcWCQ/1/

Например: нажмите на поле ввода, затем нажмите Shift+TAB, а затем начните вводить не совсем то, что вы ищете.... но где-то рядом

Другие вопросы по тегам