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

Jquery autocomplete: How to ignore comma as delimiter

本文关键字:分隔符 何忽略 Jquery      更新时间:2023-09-26

我目前在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;
    }
});

您可以尝试进入jquery.autocomplete.ui JS文件,并从该代码中查找和删除逗号大小写。那么字段就永远找不到它了。我不确定你使用的是哪个版本的ui或哪个版本。

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

我不熟悉自动完成小部件,所以我不能给出任何代码示例,对不起。希望它仍然能为你指明正确的方向。