如何使用jquery ui组合框的远程源代码?

时间:2011-11-04 15:04:46

标签: jquery jquery-ui

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是演示。

3 个答案:

答案 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)...
  1. 从我正在创建组合的页面代码我调用创建代码如下:

    var options = {     autocompleteSetup:{         延迟:100,         minLength:2,         来源:“http://your/data/hook/url”     } }; $(“#sububo”)。combobox(options);