我有一个包含文字的输入。当我点击此输入时,文本的颜色将会改变。在输入中是例如。文本'Hello buddy' - 当我点击单词Hello
末尾的输入时,是否有任何简单的方法将光标设置在开头(单词Hello
之前)? / p>
$('#your_name').focus(function(){
if($(this).val() == $(this).attr('title')){
$(this).css('color', 'red');
}
$(this).keyup(function() {
$(this).val('');
});
});
当我开始输入文本时,如何删除当前文本Hello buddy
并在输入中只输入“新”文本?我正在尝试使用keyup
方法,但我键入的所有内容都将被删除。
答案 0 :(得分:3)
在此处查看我的DEMO。还修改了你的jsFiddle ..见here
修改:您只需使用el.setSelectionRange(index, index);
设置插入位置。
关于你在键盘时删除整个文本的第二个问题,你可以使用只执行一次的.one方法。
$(this).one('keydown', function() {
$(this).val('');
});
答案 1 :(得分:1)
您可以使用输入字段的selectionStart属性来获取插入符的位置,然后您可以通过与value
匹配来检查它是否在单词“Hello”后面。领域。然后,您可以使用setSelectionRange将插入符号设置为某个位置。 setSelectionRange(0,0);
会将其设置为开头。
修改:我只是重新阅读您的问题,如果您只是想在再次输入时删除所有文字,则可以使用select()
选择字段中的所有文字。如果您随后开始输入,则会删除所选文本。