gpt4 book ai didi

javascript - jQuery UI - 多个自动完成 - 结果不一致

转载 作者:行者123 更新时间:2023-12-01 05:49:06 24 4
gpt4 key购买 nike

我有以下 tags.json 文件:

     [
{"label" : "Aragorn"},
{"label" : "Arwen"},
{"label" : "Bilbo Baggins"},
{"label" : "Boromir"}
]

以及以下 javascript 代码(相同 from the working demo ):

  <script>
$(function() {
function split( val ) {
return val.split( /,\s*/ );
}
function extractLast( term ) {
return split( term ).pop();
}

$( "#people" ) //DIFF FROM DEMO
// don't navigate away from the field on tab when selecting an item
.bind( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).data( "ui-autocomplete" ).menu.active ) {
event.preventDefault();
}
})
.autocomplete({
source: function( request, response ) {
$.getJSON( 'tags.json', { //DIFF FROM DEMO
term: extractLast( request.term )
}, response );
},
search: function() {
// custom minLength
var term = extractLast( this.value );
if ( term.length < 2 ) {
return false;
}
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( ", " );
return false;
}
});
});
</script>

但是,当我在输入框中键入例如:“ar”时,我会得到 Aragorn、Arwen、Bilbo BagginsBoromir。我不明白为什么 BilboBoromir 出现在结果中?我应该只得到 AragornArwen 因为这些字符串包含 'ar' 字符串...

最佳答案

问题在于,在 jQuery 示例中,$.getJSON() 函数调用一些服务器端脚本,该脚本对 term 参数执行某些操作,即过滤名称。在您的情况下,tags.json 文件按原样返回,其中包括所有结果。如果您想根据某些内容过滤结果,例如输入的术语,您需要在调用响应之前应用该过滤(当前是您的 $.getJSON() 函数的回调)。

关于javascript - jQuery UI - 多个自动完成 - 结果不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24033774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com