2017-04-01 107 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 !!! –