Я хочу, чтобы мой вклад был написан влево
Я знаю, что это возможно в 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, а затем начните вводить не совсем то, что вы ищете.... но где-то рядом