2013-08-07 7 views
0

В настоящее время у меня возникают проблемы с виджем автозаполнения от JQuery. У меня есть удаленный источник данных, в котором некоторые строки (или поисковые термины) содержат в них запятые. Как только я ввожу запятую в текстовое поле ввода, список предложений исчезает.JQuery autocomplete: как игнорировать запятую как разделитель

Мне кажется, что виджет автозаполнения использует запятую как разделитель. Как я могу легко игнорировать запятую, чтобы я мог отобразить правильный результат?

Вот мой код:

$.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

Вы можете попробовать собирается в файл JS jquery.autocomplete.ui, а также найти и извлекать случай запятой из этого кода. Тогда поле никогда не будет искать его. Я не уверен, какая версия ui или какая вы используете.

+0

Да, я мог бы это сделать, но скорее не хотел. Проблема в том, что если/когда я перехожу к новой версии jquery ui, тогда я должен ее исправить еще раз. Легко забыть. – benbjo

0

Перед отправкой входного значения в функцию автозаполнения, разделите его с запятой на str_replace.

Я не знаком с виджетами автозаполнения, поэтому я не могу привести примеры кода, извините. Надеюсь, он все равно может указать вам в правильном направлении.

+0

Это не сработает, потому что поисковый запрос не будет соответствовать источнику. Я мог бы разделять запятую как с исходного, так и на поискового термина, но это низшее решение. Скорее будет делать то, что предлагает пользователь a5567lfg. – benbjo

Смежные вопросы