我有一些通过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
?
答案 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)
<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;