Изменение текста и установка курсора на входе - PullRequest
1 голос
/ 22 января 2012

У меня есть вход, который содержит текст.Когда я нажимаю на этот вход, цвет текста изменится.На входе есть например.текст «Привет, приятель» - и когда я нажимаю на ввод в конце слова Hello, существует ли какой-либо простой способ установить курсор на начало (перед словом Hello)?

$('#your_name').focus(function(){
    if($(this).val() == $(this).attr('title')){
        $(this).css('color', 'red');
    }

    $(this).keyup(function() {
      $(this).val('');
    });
});

А когда я начинаю вводить текст в, как я могу удалить текущий текст Hello buddy и иметь на входе только «новый» текст?Я пытаюсь сделать с помощью метода keyup, но все, что я ввожу, удаляется.

Ответы [ 2 ]

3 голосов
/ 22 января 2012

См. Мои ДЕМО здесь.Также изменил ваш jsFiddle .. см. здесь

Редактировать : Вы можете просто использовать el.setSelectionRange(index, index);, чтобы установить позицию каретки.

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

$(this).one('keydown', function() {
      $(this).val('');
});
1 голос
/ 22 января 2012

Вы можете использовать свойство selectionStart поля ввода, чтобы получить местоположение каретки, и затем вы можете проверить, находится ли оно за словом «Hello», сопоставив его с value поле. Затем вы можете использовать setSelectionRange для установки каретки в позицию. setSelectionRange(0,0); установит его в начало.

Редактировать: Я просто перечитал ваши вопросы, и если вы просто хотите удалить весь текст при повторном вводе, вы можете просто использовать select(), чтобы выделить весь текст в поле. Если вы начнете печатать, он удалит выделенный текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...