我想延迟初始化 jQueryUI 自动完成的源选项。我知道可以将函数传递给源选项,但我想延迟初始化,直到用户真正开始使用自动完成功能。
我尝试等待搜索事件,然后设置源选项,但这没有效果。
var availableTags = [
"ActionScript",
"AppleScript",
"Scheme"
];
$("#searchFirstTransactionStateInfo_searchPartnerId").autocomplete({
source : [],
minLength: 0,
search: function( event, ui ) {
$(event.target).source = availableTags;
}
});
如何延迟设置源选项,直到用户开始使用 UI 元素?
注意:为了简单起见,我使用了固定数组。最后我想调用一个AJAX函数。
最佳答案
好吧,如果您使用一个函数作为源参数,并让该函数执行 get 请求(当然是 ajax),它实际上只会在您输入内容时才开始发出请求。例如,打开网络选项卡并开始在此 UI 示例中键入:
http://jqueryui.com/autocomplete/#multiple-remote
$(function() {
function split( val ) {
return val.split( /,\s*/ );
}
function extractLast( term ) {
return split( term ).pop();
}
$( "#birds" )
.autocomplete({
source: function( request, response ) {
$.getJSON( "search.php", {
term: extractLast( request.term )
}, response );
},
search: function() {
// custom minLength
var term = extractLast( this.value );
if ( term.length < 2 ) {
return false;
}
},
focus: function() {
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;
}
});
});
关于javascript - jquery UI 自动完成的延迟初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24626591/