更改文本并在输入中设置光标

Changing a text and setting a cursor in the input

本文关键字:置光标 输入 文本      更新时间:2023-09-26

我有一个包含文本的输入。当我点击进入这个输入时,文本的颜色就会改变。例如,输入中有文本"你好,伙计",当我点击单词Hello末尾的输入时,是否有任何简单的方法可以将光标设置在开头(单词Hello之前)?

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

当我开始在中键入文本时,如何删除当前文本Hello buddy并在输入中只输入"新"文本?我正在尝试使用keyup方法,但我键入的所有内容都被删除了。

请在此处查看我的DEMO。还修改了你的jsFiddle。。参见此处

编辑:您只需使用el.setSelectionRange(index, index);来设置插入符号的位置。

对于你的第二个问题,当你按下键时删除整个文本,你可以使用.one方法,它只会执行一次。,

$(this).one('keydown', function() {
      $(this).val('');
});

您可以使用输入字段的selectionStart属性来获取插入符号的位置,然后通过与字段的value匹配来检查它是否在单词"Hello"后面。然后可以使用setSelectionRange将插入符号设置到某个位置。setSelectionRange(0,0);将其设置为开始。

编辑:我只是重读了您的问题,如果您只是想在再次输入时删除所有文本,您只需使用select()来选择字段中的所有文本。如果随后开始键入,则会删除所选文本。