我们可以使用jQuery UI自动完成来填充现有的选择框吗?

时间:2012-11-10 22:27:51

标签: jquery-ui select autocomplete filtering

有没有办法使用jQuery UI自动填充功能不打开建议下拉菜单,而是填充现有的选择框?

可以使用

完成类似的解决方法

http://www.barelyfitz.com/projects/filterlist/

http://andrew.hedges.name/experiments/narrowing/

但我们可以使用jQuery UI吗?

2 个答案:

答案 0 :(得分:1)

您可以使用渲染器检索已过滤的数据,并使用它们执行任何操作

$('#myAutocomplete').data( "autocomplete" )._renderItem = function( ul, item ) {
    $('#myCustomElement').append( "<a>" + item.label + "<br>" + item.desc + "</a>" )

    //Cancel the suggestion rendering
    //return void since 1.9 else just return false
    return $('');
};

http://jqueryui.com/autocomplete/#custom-data启发

修改

添加小提琴,解释如何避免建议清单:http://jsfiddle.net/GF5c4/

答案 1 :(得分:0)

最后,经过几个小时我才发现了这一点。重新引导自动完成的数据绑定后,Bouillou重新定向我,我做了这些来实现我的目标。

  1. 首先,我添加了我的替换搜索功能,用于添加清除所有先前选择框内容的行。这是我的新搜索功能:

         search: function( event, ui ){
             $("#links_list option").remove(); // This line is added
             var str = '';
             for(var attr in event){
                 str += attr.toString() + '\n';
             }
             console.log(str);
    
             var str2 = '';
             for(var attr in ui){
                 str2 += attr.toString() + '\n';
             }
             console.log(str2);
         },
    
  2. 然后我调整了.data绑定和_renderItemreturn $('');正在打破进程,只返回一个带有空建议框的建议。 (我也不想看到。)

  3. 然后我将return(.....)函数中的原始_renderItem更改为:

            return $('<option value="'+item.value+'">'+item.label+'</option>')
            .appendTo("#links_list");
    

    您可以在下面看到示例屏幕结果。

    And the result