2013-11-22 34 views
4

我有一個工作良好的Select2輸入。用戶可以開始打字並從下拉菜單中選擇一個選項,並在輸入字段中添加一個標籤,由於createSearchChoice功能,他們也可以創建自己的標籤。在Select2輸入框中選擇2個預裝標籤

我的情況是,當用戶鍵入一個已存在的客戶名稱時,它鎖定,我希望它用標籤(通常的供應商)填充該字段。用戶可以根據需要刪除或添加更多標籤。

我的代碼是:

$('#usualSuppliers').select2({ 
     containerCssClass: 'supplierTags', 
     placeholder: "Usual suppliers...", 
     minimumInputLength: 2, 
     multiple: true, 
     placeholder: 'Usual suppliers...', 
       createSearchChoice: function(term, data) { 
      if ($(data).filter(function() { 
       return this.name.localeCompare(term) === 0; 
      }).length === 0) { 
       return {id: 0, name: term}; 
      } 

     }, 
     id: function(e) { 
      return e.id + ":" + e.name; 
     }, 
     ajax: { 
      url: ROOT + 'Ajax', 
      dataType: 'json', 
      type: 'POST', 
      data: function(term, page) { 

       return { 
        call: 'Record->supplierHelper', 
        q: term 
       }; 
      }, 
      results: function(data, page) { 
       return { 
        results: data.suppliers 
       }; 
      } 
     }, 
     formatResult: formatResult, 
     formatSelection: formatSelection, 
     initSelection: function(element, callback) { 
      var data = []; 
      $(element.val().split(",")).each(function(i) { 
       var item = this.split(':'); 
       data.push({ 
        id: item[0], 
        title: item[1] 
       }); 
      }); 
      //$(element).val(''); 
      callback(data); 
     } 
    }); 

我怎樣才能使預填充,從一個Ajax請求進來標籤輸入?

回答