使用jQuery选择输入值的第一个字符

时间:2016-10-27 11:57:15

标签: javascript jquery

我有一些通过jQuery预先填充的输入字段。我想获取输入的值,检查它是否以“x”开头,如果是,则选择该x。 (这样用户只需键入其他内容即可快速更改x。)

我知道这里有这样的问题:Selecting Part of String inside an Input Box with jQuery

但这是一个非常古老的问题,并没有真正使用jQuery!

那么,如何在此输入值中选择x?

<input class="input" type="text" value="x*500*500" />

我试过了:

var input = $('.input');
input.setSelectionRange(0, 2); // Highlights "X"
input.focus();

错误:Uncaught TypeError: input.setSelectionRange is not a function。是否已弃用setSelectionRange

3 个答案:

答案 0 :(得分:3)

您必须通过添加[0]取消引用jQuery对象。  setSelectionRange是纯JavaScript,处理普通的JS对象。它不知道jQuery对象是什么。顺便说一下,我将第二个参数从2更改为1. 它的行为不像MDN has described

var input = $('.input')[0];
input.setSelectionRange(0, 1); // Highlights "X"
input.focus();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="input" type="text" value="x*500*500" />

答案 1 :(得分:1)

您正在输入变量中的完整元素,获取输入字段的值并检查它是否以字符开头

var input = $('.input').val();
if(input.str.startsWith('X')){
    e.focus();
    var pos = e.val().indexOf('x');
    e.prop({
        'selectionStart': pos,
        'selectionEnd': pos + 1
    });
}

答案 2 :(得分:1)

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input data-field="test" value="hello x 123">
&#13;
{{1}}
&#13;
&#13;
&#13;