2
$(function() { 
    function split(val) { 
     return val.split(/,\s*/); 
    } 
    function extractLast(term) { 
     return split(term).pop(); 
    } 
    $("#names").autocomplete({ 
     source: function(request, response) { 
      $.ajax({ url: "<?php echo site_url('update/suggestions'); ?>", 
      data: { term: extractLast(request.term)}, 
      dataType: "json", 
      type: "POST", 
      success: function(data){ 
       response(data); 
      }, 
      focus: function() { 
       // prevent value inserted on focus 
       return false; 
      }, 
      select: function(event, ui) { 
       var terms = split(this.value); 
       // remove the current input 
       terms.pop(); 
       // add the selected item 
       terms.push(ui.item.value); 
       // add placeholder to get the comma-and-space at the end 
       terms.push(""); 
       this.value = terms.join(","); 
       return false; 
      } 
     }); 
    }, 
    minLength: 2 
    }); 
}); 

Приведенный выше код заменяет существующий выбор, а не добавляет новый выбор в существующий. Это в Codeigniter. Единственный автозаполнение работает нормально. Это не для нескольких полей ввода, это для добавления нескольких значений в одно поле ввода.Несколько автозаполнений Не работает

ответ

1

Вы код имеет несколько вопросов:

  • вы не правильно закрывать функцию $.ajax функции и source опции ,
  • minLength: 2 также неуместен.
  • Из-за предыдущих проблем у вас слишком много закрывающих скобок/скобок.

Например у вас есть:

source: function(request, response) { 
     $.ajax({ url: "<?php echo site_url('update/suggestions'); ?>", 
     ... 
     success: function(data){ 
      response(data); 
     }, 
    // missing closings 
    focus: function() { 

, которые должны быть:

source: function(request, response) { 
     $.ajax({ 
      url: "<?php echo site_url('update/suggestions'); ?>", 
      ... 
      success: function(data) { 
       response(data); 
      } 
     }); // closes $.ajax function 
    }, // closes the 'source' function 
    focus: function() { 


Проверить это DEMO с правильным синтаксисом. Он работает правильно (я добавил обработчик ошибок в ajax для отображения некоторых статических результатов).

+0

Autosuggest перестали работать. –

+0

Это произошло потому, что я не отфильтровал список в обработчике ошибок (мой статический источник данных). Я обновил скрипку, и теперь она правильно фильтруется. –

+0

Вы - спасатель жизни, слава Богу, боролись с этим в течение 10 дней. –

0

для нескольких автокомпонентов, как вы представляете идентификатор "#names"? Вы указали одинаковый идентификатор для всех полей ввода автозаполнения.

Try, чтобы дать общий класс для всех входных автозаполнения полей затем вызвать, как показано ниже

$(".autoclass").autocomplete({ 
+0

Это не для нескольких полей ввода, это для добавления нескольких значений в одно поле ввода. –