[英]jquery autocomplete 'Disable' show all terms
嘿,有人可以指導我解決這個問題。...我成功創建了jquery自動完成功能,但是我的問題是自動完成建議顯示了所有可用的標簽。 自動完成功能顯示的結果甚至與搜索字詞都不匹配。 我的意思是顯示所有可用的標簽。 是他們僅顯示匹配標簽的任何解決方案。 這是java函數。 任何幫助將不勝感激。 謝謝
$(document).ready(function () {
$("#search-title").autocomplete({
source: function ( request, response ) {
$.ajax({
url: "availabletags.json",
dataType: "json",
data: {
term: request.term
},
success: function (data) {
response( $.map( data.stuff, function ( item ) {
return {
label: item.label,
value: item.value
};
}));
}
});
},
minLength: 2,
select: function (event, ui) {
$(event.target).val(ui.item.label);
window.location = ui.item.value;
return false;
}
});
});
編輯:-這是Json文件
{"stuff":[ {"label" : "Dragon", "value" : "eg.com"} ,
{"label" : "testing", "value" : "eg2.com"}]}
成功編輯代碼
<script>
$(document).ready(function () {
$("#search-title").autocomplete({
source: function ( request, response ) {
$.ajax({
url: "availabletags.json",
dataType: "json",
success: function (data) {
var sData = data.stuff.filter(function(v) {
var re = new RegExp( request.term, "i" );
return re.test( v.label );
});
response( $.map( sData, function ( item ) {
return {
label: item.label,
value: item.value
};
}));
}
});
},
minLength: 2,
focus: function (event, ui) {
this.value = ui.item.label;
event.preventDefault(); // Prevent the default focus behavior.
},
select: function (event, ui) {
$(event.target).val(ui.item.label);
window.location = ui.item.value;
return false;
}
});
});
</script>
這是您要進行的更改:
dataType: "json",
success: function (data) {
var sData = data.stuff.filter(function(v) {
return v.value.indexOf( request.term ) > -1;
});
response( $.map( sData, function ( item ) {
該搜索將按value
。 要按label
搜索,換句話說,將要與JSON中的標簽進行比較的用戶輸入,請使用以下代碼:
return v.label.indexOf( ........
更新
要使搜索不區分大小寫,請使用以下命令:
var re = new RegExp( request.term, "i" );
return re.test( v.label );
而不是return v.value.indexOf( request.term ) > -1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.