после добавления новой строки с помощью jquery добавить параметр select2 невозможно щелкнуть и изменить значение - PullRequest
0 голосов
/ 24 апреля 2019

У меня была опция выбора ввода с использованием select2, каждый раз, когда я создаю новую строку с помощью jquery, добавляю новейшую опцию select, содержащую значение из опции выбора первой строки и не могу щелкнуть, я что-то не так сделал в вызове append select2 или в моем ajax? html:

<table class="table">
<tr>
  <th><input id="addRow" type="button" class="btn" value="+ Item"> <input id="delRow" type="button" class="btn" value="- Item"></th>
</tr>
<tr>
  <div id="dat">
  <table id="dataTable" class="table form-group-sm table-striped">
      <tr>
          <td width="33"><input type="checkbox" name="chk[]"></td>
          <td>
            <select class="select2 form-control" name="item_code[]" tabindex="1" id="item_code" style="width: 100%" >
              <option value=""></option>
            </select>
          </td>
          <td><input data-a-dec="," data-a-sep="." type="text" class="prize form-control" name="prize[]" placeholder="input prize per package" required='' data-toggle="tooltip" data-placement="right" title="Input angkanya saja. Untuk desimal menggunakan titik. Contoh yang benar : 6000000 atau 3255.35" style="width: 100%;" /></td>
          <td><input type="text" class="form-control" name="remark[]" placeholder="input remark" data-toggle="tooltip" data-placement="top" title="Input keterangan tambahan"></td>
      </tr>
  </table>
  </div>
  </tr>

JavaScript:

<script type="text/javascript">

$ (документ) .ready (функция () {

  //add row
  $('#addRow').on('click',function(){
    var lastRow = $('#dataTable tbody tr:last').html();
    $('#dataTable tbody').append('<tr>' + lastRow + '</tr>');
    $('#dataTable tbody tr:last input').val('');
    $('#dataTable tbody tr:last select2').select2('destroy');

    $('.select2 tr:last').select2('val','',{
      placeholder : "-Pilih Product-",
      ajax:{
        type : "GET",
        url : "<?php echo site_url('quotation/get_product')?>",
        delay : 250,
        dataType : "json",
        data : function(params){
          return{
            name : params.term
          }
        },
        processResults : function(data,page){
          var results = [0];

          $.each(data,function(index,items){
            results.push({
              id:items.item_code,
              text:items.item_name,
            });
          });
          return {
            results:results
          };
        },
      }
    });

    $('[data-toggle="tooltip"].form-control').tooltip();  
    $('.prize').autoNumeric();
  });

  // Delete selected checkbox in the table
$('#delRow').click(function() {
    var lenRow    = $('#dataTable tbody tr').length;
    var lenChecked  = $("#dataTable input[type='checkbox']:checked").length;
    var row = $("#dataTable tbody input[type='checkbox']:checked").parent().parent();
    if (lenRow == 1 || lenRow <= 1 || lenChecked >= lenRow) {
        alert("Can't remove all row!");
    } else {
        row.remove();
    }
  });

});

...