的HTML
<input type='text' id='searchable'value='hello world' />
<input type='hidden' id=x value='hel' />
我如何从#searchable中选择文本,从隐藏输入值的末尾到#searchable的末尾?
固定谢谢大家
$('input.complete').live('keyup.autocomplete', function(){
var hi=$(this).val().toUpperCase();
var was=this;//PROBlEM was here... was=$(this)
$(this).autocomplete({
source: function(request, response) {
$.ajax({ url: '<?=base_url()?>ajax/ac',
data: { 'term': this.term,'page': 'clinic','key': this.element.attr('data-complete')},
dataType: "json",
type: "POST",
success: function(data){
if(!data.length){
var result = [{label: 'No match found',value: response.term}];
response(result);
}else{
response(data);
$(was).val(data[0]['value']);
was.selectionStart=hi.length;
was.selectionEnd=data[0]['value'].length;
}
}
});
},
select: function(event, ui){},
minLength: 2,
});
});
最佳答案
试试看
(function() {
var search = $('#searchable')[0],
searchvalue = search.value,
xtext = $('#x').val(),
startAt = searchvalue.indexOf(xtext) + xtext.length;
search.selectionStart = startAt;
search.selectionEnd = searchvalue.length;
}());
Live demo
如果
x
值总是从搜索值的第一个字符开始匹配,则searchvalue.indexOf(xtext)
是多余的,因为它将始终返回0
并且可以安全地删除。参考文献:
多罗(Dottoro):
selectionStart
,selectionEnd
MSDN:
selectionStart
,selectionEnd
MDN:
HTMLInputElement
Properties注意:由于
selectionStart
和selectionEnd
是HTML5的一部分,因此不支持IE关于javascript - 扩展jQuery自动完成功能:从文本输入内部选择字符串的一部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14426422/