2013-08-07 82 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

相關問題