2016-09-21 52 views
0

我在bootstrap form-group中使用select2,其中包含一個datepicker和一個select2。當我克隆表單組時,只有datepicker可以工作,select2根本無法工作。Clonned Select2沒有響應

我幾乎嘗試計算器所有的答案,每次我試圖,它會顯示不同的錯誤,像「式錯誤」「事件不能正常工作」「點擊克隆選擇2,但responsed到原點select2「

我的代碼如下:

HTML代碼:

<div class="form-group drive-item"> 
     <label class="col-md-2 col-sm-3 col-xs-12 control-label">試駕時間: </label> 
     <fieldset> 
     <div class="control-group"> 
      <div class="controls"> 
      <div class="col-md-3 has-feedback"> 
       <input type="text" class="form-control has-feedback-left drive-date" name="drive_date" placeholder="試駕日期" aria-describedby="inputSuccess2Status"> 
       <span class="fa fa-calendar-o form-control-feedback left" aria-hidden="true"></span> 
       <span id="inputSuccess2Status" class="sr-only">(success)</span> 
      </div> 
      <div class="col-md-4 col-sm-6 col-xs-12"> 
       <select class="select2_one form-control select2-gentlla" tabindex="-1" name="drive_time" multiple="multiple"> 
       <option value=""></option> 
       <foreach name="hour_list" item="hour"> 
        <option value="{$hour}">{$hour}</option> 
       </foreach> 
       </select> 
      </div> 
      </div> 
     </div> 
     <span aria-hidden="true" class="glyphicon glyphicon-plus glyphicon-margin"></span> 
     </fieldset> 
    </div> 

的JS代碼:

$('.drive-item').on('click', '.glyphicon-plus', function(){ 
    $form_group = $(this).parent().parent(); 
    $clone = $form_group.clone(); 

    $datepicker = $clone.find('.drive-date'); 
    $datepicker.daterangepicker('destroy'); 
    $datepicker.removeAttr('id'); 
    $datepicker.daterangepicker(datepicker_option); 

    $select2_origin = $form_group.find('.select2_one'); 
    $select2_origin.select2('destroy'); 

    $select2_clone = $select2_origin.clone(); 
    console.log($select2_origin); 
    console.log($select2_clone); 

    $form_group.after($clone); 

    $select2_origin.select2(); 
    $select2_clone.select2(); 

}); 

任何幫助/建議將是明顯的。

我解決了閱讀這個線程後,這個問題:
Select2 clone is working only twice

+0

解決這個[http://stackoverflow.com/questions/29252443/select2-clone-is-working-only-兩次](http://stackoverflow.com/questions/29252443/select2-clone-is-working-only-twice) – tdycss

+0

如果你解決了,請回答你的問題,揭露你做了什麼喲解決問題,而不是編輯你的文章並投入他們的解決方案。謝謝 –

回答

0

你所做的克隆具有完全相同的標記與原始。所以調用.select2()將不知道要初始化哪一個,並且會出錯。

使用

$('select').select2(); 

這將初始化頁面上的<select>所有實例

+0

我試過了,它會增加額外的輸入 tdycss