如果找不到匹配项,如何使用Select2动态添加新项目?

时间:2014-10-12 14:24:18

标签: jquery ajax jquery-select2 select2-rails

我在我的Rails应用程序中使用select-2来自动填充带有Ajax调用的字段并允许多个值。

我的CoffeScript文件:

$(document).ready ->
  $('.select2').each (i, e) =>
    select = $(e)
    options =
      placeholder: select.data('placeholder')
      multiple: true
      width: "100%"      
      maximumSelectionSize: 20
      tokenSeparators: [",", " "]
      dropdownClass: 'bigdrop'      

    if select.hasClass('ajax')
      options.ajax =
        url: select.data('source')
        dataType: 'json'
        data: (term, page) ->
          q: term
          page: page
          per: 25
        results: (data, page) ->
          results: data.resources
          more: data.total > (page * 25) 

      options.dropdownCssClass = "bigdrop"

    select.select2(options)

我希望能够在服务器没有结果的情况下添加新项目,目前它不允许我添加新项目(未保存在服务器上并通过Ajax调用填充)。

1 个答案:

答案 0 :(得分:0)

我必须使用类似以下内容的createSearchChoice:

  createSearchChoice: (term, data) ->
    if $(data).filter(->
      this.text.localeCompare(term) is 0
    ).length is 0
      id: term
      text: term