我发现了几个使用普通jquery自动完成功能的示例,但是这些示例无法与the demo组合框代码中包含的自动完成功能一起使用,因为代码的结构是如此不同。

我想匹配在任何词中任何位置都具有所有搜索标记的每个项目。我不需要匹配任何单词的开头,任何部分都可以。我不在乎搜索字符串是否会在自动完成列表中突出显示,否则会使事情变得过于复杂。

期望的搜索/结果组合:(请原谅)
“第一”“第一第二”
“第三个月”
“ ec rd”“第一秒”
但不限于任何最大/最小长度或令牌数。

编辑

我使用我工作过的其他自动更正的代码结构来弄清了其中的一部分。

source: function( requestObj, responseFunc ) {
    var matchArry = $("select > option").map(function(){return this.innerHTML;}).get();
    var srchTerms   = $.trim(requestObj.term).split(/\s+/);

    // For each search term, remove non-matches
    $.each (srchTerms, function (J, term) {
        var regX = new RegExp (term, "i");
        matchArry = $.map (matchArry, function (item) {
            if( regX.test(item) ){
                return{
                    label: item,
                    value: item,
                    option: HTMLOptionElement
                } ? item :null;
            }
        } );
    });

    // Return the match results
    responseFunc (matchArry);
},




select: function( event, ui ) {
    ui.item.option.selected = true;
    self._trigger( "selected", event, {
        item: ui.item.option
    });
    $("destination").val(ui.item.value);    // I added this line
},


但是我不能同时看到多个单词,也无法单击以选择同时工作。

如果在地图功能的退货处删除了} ? item :null;,则可以单击以选择一个项目。如果我保留它,我可以输入多个单词,但不能单击任何项​​...

是问题还是option: this?我尝试用HTMLOptionElementnull替换它,但遇到了麻烦。

我可以在选择标签内使用ui.item.value设置另一个字段的值,但这不会将该值放在搜索框中或关闭下拉菜单。

最佳答案

一时兴起,我在选择标签上添加了ui.item.option = ui.item.value;,一切正常。选项:源中的值现在似乎无关紧要。

*我不声称这是一种良好的编码习惯

更新的小提琴:http://jsfiddle.net/eY3hM/

10-06 12:26
查看更多