2013-08-07 39 views
0

我目前在使用Jquery的自动填充小部件时遇到了一些麻烦。我有一个远程数据源,其中一些字符串(或搜索词)在其中包含逗号。只要在输入文本框中输入逗号,建议列表就会消失。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; 
    } 
}); 

回答

0

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

+0

是的,我可以那样做,但宁愿不。问题是,如果/当我升级到jquery ui的新版本,那么我必须再次修复它。很容易忘记。 – benbjo

0

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

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

+0

这不起作用,因为搜索字词与源不匹配。我可以从源文件和搜索词中删除逗号,但那是一个劣质解决方案。宁可然后做什么用户a5567lfg建议。 – benbjo

相关问题