combobox启用了自动填充功能。如何将JSON数据作为此组合框的源传递?
更新。我找到了部分答案here - 它允许我使用远程数据源(原始var input = this.input = $( "<input>" ).autocomplete({ source
替换为远程源)。但我不能选择值 - 看起来问题是使用以下代码(它允许从选择选项中选择值(我没有)。
select: function( event, ui ) {
ui.item.option.selected = true;
self._trigger( "selected", event, {
item: ui.item.option
});
},
如何解决这个问题?
Here是演示。
答案 0 :(得分:2)
以下是工作示例 - http://jsfiddle.net/and7ey/TFerw/3/
如果请求空term
,远程端应返回一些值(最常用) - 当用户按下组合框按钮时会发生这种情况。
答案 1 :(得分:0)
从您在问题中添加的链接中获取的示例:
$( "#birds" ).autocomplete({
source: "search.php", // remote site
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
});
答案 2 :(得分:0)
我刚刚使用了下一个构造: 1.在combobox.js中,我放置https://jqueryui.com/autocomplete/#combobox上显示的示例中的代码并更改了 _create &amp; _createAutocomplete 的功能如下:
_create: function() {
this.wrapper = $( "<span>" )
.addClass( "custom-combobox" )
.insertAfter( this.element );
var autocompleteSetup = this.options.autocompleteSetup;
this.element.hide();
this._createAutocomplete( autocompleteSetup );
this._createShowAllButton();
}
_createAutocomplete: function(setupObject) {
...
this.input = $( "<input>" )
.appendTo( this.wrapper )
.val( value )
.attr( "title", "" )
.addClass( "custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left" )
.autocomplete(setupObject)...
从我正在创建组合的页面代码我调用创建代码如下:
var options = { autocompleteSetup:{ 延迟:100, minLength:2, 来源:“http://your/data/hook/url” } }; $(“#sububo”)。combobox(options);