Jquery自动完成:如何将逗号忽略为分隔符

时间:2013-08-07 08:39:29

标签: javascript jquery autocomplete

我目前在使用Jquery的自动完成小部件时遇到了一些麻烦。我有一个远程数据源,其中一些字符串(或搜索术语)中包含逗号。只要在输入文本框中键入逗号,建议列表就会消失。

对我而言,自动完成小部件似乎使用逗号作为分隔符。如何轻松忽略逗号,以便显示正确的结果?

这是我的代码:

$.widget( "custom.catcomplete", $.ui.autocomplete, {
    _renderMenu: function( ul, items ) {
        var that = this,
        currentCategory = "";
        $.each( items, function( index, item ) {
            if ( item.category != currentCategory ) {
                ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
                currentCategory = item.category;
            }
            that._renderItemData( ul, item );
        });
    }
});


$(".sottendeDokumenterSearchField").catcomplete({
    source: "myURL",
    minLength: 2,
    select: function( event, ui ) {
        return processAutocompleteElSelected(event, ui);
    },
    open: function(event, ui){
        if(autoselect){
            var keyEvent = $.Event("keydown");          
            keyEvent.keyCode = $.ui.keyCode.DOWN;

            $(".sottendeDokumenterSearchField").trigger(keyEvent); 
            keyEvent.keyCode = $.ui.keyCode.ENTER; 
            $(".sottendeDokumenterSearchField").trigger(keyEvent); 
        }

        autoselect = false;
    }
});

2 个答案:

答案 0 :(得分:0)

您可以尝试进入jquery.autocomplete.ui JS文件,并从该代码中查找并删除逗号大小写。然后该领域永远不会寻找它。我不确定你使用的是哪个版本的ui或者哪个版本。

答案 1 :(得分:0)

在将输入值发送到自动完成功能之前,请使用str_replace将其从逗号中删除。

我不熟悉自动完成小部件,因此我无法提供任何代码示例,抱歉。希望它仍然可以指向正确的方向。