2013-11-22 35 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请求进来标签输入?

回答