2017-04-01 113 views
0
工作

我已經嘗試了許多資源:克隆選擇二不Asp.Net

Cloned Select2 is not responding

select2 is not working

select2 is not working

Initialising select2 created dynamically

How to execute select2() function on dynamically created select list?

Select2 not displayed when added dynamically for the first time

說明:

查看頁面是建立使用Razor。我試圖克隆使用JQuery row,第一個工作正常,新創建(動態)不打開(凍結)。 圖片: image link

查看代碼:

     <div id="ROW_0" class="template"> 
 
          <hr /> 
 
          <div class="row"> 
 
           <div class="col-md-6"> 
 
            <div class="form-group"> 
 
             <label>Credit Account</label> 
 
             @Html.DropDownListFor(model => model.AccountsId, new SelectList(Model.Accountss, "Id", "Name"), "-- select account --", new { @class = "form-control select required select2insidemodal", @id = "creditAccount" }) 
 
            </div> 
 
           </div> 
 
           <div class="col-md-6"> 
 
            <div class="form-group"> 
 
             <label>Amount</label> 
 
             @Html.EditorFor(model => model.Credit, new { htmlAttributes = new { @class = "form-control", @type = "text", @id = "credit" } }) 
 
            </div> 
 
            <span id="[email protected](vm => vm.Credit)" class="dN cR"></span> 
 

 
           </div> 
 
          </div> 
 
         </div>

腳本:

//button for adding row 
 
$(document).ready(function() { 
 

 
    $(document).on('click', "#addMore",function (e) { 
 
      addNewRow(); 
 
     }); 
 
      
 
     function addNewRow() { 
 
      var div = $(".template").clone().html(); 
 

 
      //find all select2 and destroy them 
 
      $(div).find(".select2").each(function (index) { 
 
       if ($(this).data('select2')) { 
 
        $(this).select2('destroy'); 
 
       } 
 
      }); 
 

 

 
      $("#dynamicBlock").prepend(div); //adding cloned data to new div '#dynamicBlock'.

幫幫我。

回答

0

它看起來並不像你在將新選擇添加到頁面後初始化新選擇。

您將需要在頁面中添加新腳本(並運行它),以設置選擇項,否則它們只會坐在那裏。

var initScript = '$(".select2insidemodal").select2();'; 

$('<script>' + initScript + '</' + 'script>').appendTo(document.body); 

如果你要克隆一個以上的選擇,那麼我想你可以只添加初始化腳本最後只有一次,因爲它應該初始化所有的克隆選擇。

+0

Thanks Mate !!! –