2015-05-20 47 views
0

selectize的文檔已經解釋瞭如何使用create:function(input,callback){....}向數據庫添加一個新項目。selectize.js調用href添加新選項

在我的情況下,選擇框的基本模型不僅包含選項名稱,還包含其他數據。

P.e .:我有一個選擇框與國家。 選項由包含「country_name」,「top_level」,「currency」的「Countries」模型填充。選擇框只顯示「country_name」。 如果用戶想要添加一個新的國家,我想打開引導模式,讓用戶添加新的國家數據,保存後我想使用refreshOptions()刷新選擇框。

我試圖從

'option_create': function(data, escape) { 
    return '<div class="create">Add <strong>' + escape(data.input) + </strong>&hellip;</div>'; 

在行741 selectize.js更改爲

'option_create': function(data, escape) { 
    return '<a data-toggle="modal" data-keyboard="false" data-backdrop="static" data-target="#modal" href="... some link ...">New country</a>'; 

我可以看到在seletbox寫一個不存在的國後的鏈接,但是當我點擊它沒有任何反應。

我該如何解決這個問題?我已經接近放棄:-)

++++++++++++++++++++++++++++++++++ JavaScript來移除選項:

<script type="text/javascript"> 
    $(".chosen-search-94-departID").selectize({ 
     create: true, 
     sortField: {field: 'text'}, 
     onOptionAdd: function (value, $item) { 
      var link='... link ...' + value; 
      load_modal_content (link, '... csrf ...'); 
      $('#modal').modal('show'); 
      $item.selectize.removeOption(value); 
     }, 
    }); 

回答

0

可能是清潔劑/簡單的使用onItemAdd(見Usage page)時,增加了新的項目來定義一個行爲。我想,無需爲此改變selectize.js。

+0

謝謝。它工作(差不多)。但是我仍然有一個問題:當用戶編寫一個新選項時,模式視圖(用戶應該爲選項添加新數據)打開。 現在用戶決定不添加新選項。他關閉了模態視圖,但新選項仍然可以選擇。 有沒有辦法阻止選擇自動添加新選項?如果選項真的保存到數據庫中,我會在關閉模式後添加它。 – sascha2014

+0

然後使用removeItem()(也許removeOption())來消除不完整的選項。 – PhiLho

+0

刪除不起作用。我相信我的代碼不正確。你能看看嗎?我在上面添加了我的代碼。謝謝! – sascha2014