我正在使用jQuery UI Autocomplete插件.有没有办法在下拉结果中突出显示搜索字符序列?
例如,如果我将"foo bar"作为数据并输入"foo",我将在下拉列表中显示" foo bar",如下所示:
我正在使用jQuery UI Autocomplete和本地数据源(source: myArray).我希望自动完成只建议以输入的字符串开头的结果,而不是默认的不区分大小写的包含搜索.是否有一个简单的解决方案或我必须提供我的自定义搜索/源回调?
如何使用jquery autocomplete和简单数组的输入从字符串的开头启用完全匹配?
如果我在数组中有以下内容:
如果我在文本输入中键入"sma ...",我必须只显示智能和智能,而不是其他.
使用JQuery AutoComplete UI,1.8,我需要更改搜索,使其仅匹配字符串的开头.背景我的来源来自一个我无法控制的ajax调用返回15,000及其相应的PK.value是名称,Id是整数PK.下面的代码可以工作,但由于我搜索了15,000个与字符串中任何位置匹配的字符串,因此它太慢了.我已经看过这个帖子,链接,但我无法弄清楚怎么做而不会丢失源中的Id字段.
我需要搜索只匹配data.d中的值的开头而不会丢失Id字段.这是一个ASP.Net应用程序,但我认为这不重要.想法?
$("#companyList").autocomplete({
minLength: 4,
source: data.d,
focus: function(event, ui) {
$('#companyList').val(ui.item.value);
return false;
},
select: function(event, ui) {
$('#companyList').val(ui.item.value);
$('#<%= hdnCompanyListSelectedValue.ClientID %>').val(ui.item.Id);
return false;
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用具有多个结果和远程数据源的jquery自动完成.我能够远程提取数据并选择多个结果.但结果列表不会根据输入的前2个字符进行更新,并且jQueryUI文档在此问题上很薄.
我已经研究过,在SO上找到了这个答案,并希望将它与我的其余功能集成,但它不会更新结果列表.独立地,SO答案可以正常工作,但是当与多个结果和远程数据源集成时则不行.
从自动完成/远程源/多功能(截断).这部分工作正常:
.autocomplete({
source: function( request, response ) {
$.ajax({
url: "/controller/myfunction",
dataType: "json",
data: request,
success: function(data){
if(data.response == 'true') {
response(data.message);
}
}
});
},
Run Code Online (Sandbox Code Playgroud)
在SO上可能的解决方案 :(独立工作正常,但不能使用jquery/remote/multiple代码):
var wordlist= [ "about", "above", "within", "without"];
$("#input1").autocomplete({
source: function(req, responseFn) {
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp( "^" + re, "i" );
var a = $.grep( wordlist, function(item,index){
return matcher.test(item);
});
responseFn( a );
}
});
Run Code Online (Sandbox Code Playgroud)
我需要将此解决方案与我的代码集成.
我想实现自动完成http://jqueryui.com/autocomplete/来过滤每一列
在datatables jquery插件中.
例如,如果我想在数据表搜索中搜索嵌入式设备ED,它将不会为我做...所以我想显示自动完成,当用户从列表中选择它然后我想要数据表过滤.
var oTable = $('#listings_row').dataTable( );
$("thead input").keyup( function (
oTable.fnFilter( this.value, parseInt($(this).attr('id')) );
} );
$("thead input").each( function (i) {
asInitVals[i] = this.value;
} );
$("thead input").focus( function () {
if ( this.className == "search_init" )
{
this.className = "";
this.value = "";
}
} );
$("thead input").blur( function (i) {
if ( this.value == "" )
{
this.className = "search_init";
this.value = asInitVals[$("#listings_row thead input").index(this)];
}
} );
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
jquery ×6
autocomplete ×3
jquery-ui ×3
javascript ×2
search ×2
arrays ×1
datatables ×1
filter ×1