jquery - javascript function in dynamically input -


i'm having issue using jquery function multiplication (math) dynamically created inputs (again created jquery). can't function bind new inputs. first row work, second row did not work (second row , more using dynamically input).

here html code

<table class="table table-condensed" style="margin-left: 10px;">         <thead>           <tr>             <th width="100px">nama</th>             <th width="100px">kode</th>             <th width="100px">harga</th>             <th width="100px">jumlah</th>             <th width="100px">total</th>             <th width="80px"></th>           </tr>         </thead>          <tbody id='itemlist' >           <tr>             <td><input id='nama' name='nama_input[]' class='form-control' /></td>             <td><input id='kode' readonly name='kode_input[]' class='form-control' /></td>             <td><input id='harga' name='harga_input[]' class='form-control' onkeyup="sum();" /></td>             <td><input id='jumlah' autocomplete="off" name='jumlah_input[]' class='form-control' onkeyup="sum();" /></td>             <td><input id='total' name='total_input[]' class='form-control' value=" " /></td>             <td></td>           </tr>         </tbody>          <tr>           <td></td>           <td></td>           <td></td>           <td></td>           <td>             <button type="button" class="btn btn-default" onclick="additem(); return false">               <b>tambah</b>             </button>           </td>         </tr>       </table> 

and script

function additem() {    //menentukan target append var itemlist = document.getelementbyid('itemlist');  //                membuat element var row = document.createelement('tr'); var nama = document.createelement('td'); var kode = document.createelement('td'); var harga = document.createelement('td'); var jumlah = document.createelement('td'); var total = document.createelement('td'); var aksi = document.createelement('td');   //                meng append element itemlist.appendchild(row); row.appendchild(nama); row.appendchild(kode); row.appendchild(harga); row.appendchild(jumlah); row.appendchild(total); row.appendchild(aksi);  //                membuat element input1 var nama_input = document.createelement('input'); nama_input.setattribute('name', 'nama_input[]'); nama_input.setattribute('class', 'form-control');  var kode_input = document.createelement('input'); kode_input.setattribute('name', 'kode_input[]'); kode_input.setattribute('readonly', ''); kode_input.setattribute('class', 'form-control');  var harga_input = document.createelement('input'); harga_input.setattribute('name', 'harga_input[]'); harga_input.setattribute('class', 'form-control'); harga_input.setattribute('onkeyup', 'sum();');   var jumlah_input = document.createelement('input'); jumlah_input.setattribute('name', 'jumlah_input[]'); jumlah_input.setattribute('class', 'form-control'); jumlah_input.setattribute('autocomplete', 'off'); jumlah_input.setattribute('onkeyup', 'sum();');   var total_input = document.createelement('input'); total_input.setattribute('name', 'total_input[]'); total_input.setattribute('class', 'form-control'); total_input.setattribute('readonly', '');  var hapus = document.createelement('span');  //                meng append element input nama.appendchild(nama_input); kode.appendchild(kode_input); harga.appendchild(harga_input); jumlah.appendchild(jumlah_input); total.appendchild(total_input); aksi.appendchild(hapus);  hapus.innerhtml = '<button class="btn btn-small btn-default"><b>hapus</b></button>'; //                membuat aksi delete element hapus.onclick = function () {   row.parentnode.removechild(row); };   var namaid = 'nama' + (math.floor((1 + math.random()) * 0x10000)); var kodeid = 'kode' + (math.floor((1 + math.random()) * 0x10000)); var hargaid = 'harga' + (math.floor((1 + math.random()) * 0x10000)); var jumlahid = 'jumlah' + (math.floor((1 + math.random()) * 0x10000)); var totalid = 'total' + (math.floor((1 + math.random()) * 0x10000)); nama_input.setattribute('id', namaid); kode_input.setattribute('id', kodeid); harga_input.setattribute('id', hargaid); jumlah_input.setattribute('id', jumlahid); total_input.setattribute('id', totalid);   function sum() {           var hrg = document.getelementbyid('hargaid').value;           var jml = document.getelementbyid('jumlahid').value;           var result = parseint(hrg) * parseint(jml);           if (!isnan(result)) {            document.getelementbyid('totalid').value = result;          }        }  $("#" + namaid).autocomplete({   source: "get_barang.php",   minlength: 2,   select: function(event, ui) {     $("#" + kodeid).val(ui.item.kode);     $("#" + hargaid).val(ui.item.harga);   } });    i++; 

}

any appreciated.

you not passing current id's of inputs sum method. , 1 more thing add jquery onkeyup event dynamic inputs. please refer below code -

 $(function() {     $('#sample').on('click',additem)      $( "#nama" ).autocomplete({        source: "get_barang.php",        minlength: 2,        select: function( event, ui ) {          $('#kode').val(ui.item.kode);          $('#harga').val(ui.item.harga);        }      });    });    function sum() {                var hrg = document.getelementbyid('harga').value;                var jml = document.getelementbyid('jumlah').value;                var result = parseint(hrg) * parseint(jml);                if (!isnan(result)) {                 document.getelementbyid('total').value = result;               }             }      var = 1;      function additem() {           //menentukan target append      var itemlist = document.getelementbyid('itemlist');        //                membuat element      var row = document.createelement('tr');      var nama = document.createelement('td');      var kode = document.createelement('td');      var harga = document.createelement('td');      var jumlah = document.createelement('td');      var total = document.createelement('td');      var aksi = document.createelement('td');          //                meng append element      itemlist.appendchild(row);      row.appendchild(nama);      row.appendchild(kode);      row.appendchild(harga);      row.appendchild(jumlah);      row.appendchild(total);      row.appendchild(aksi);        //                membuat element input1      var nama_input = document.createelement('input');      /*nama_input.setattribute('id', 'nama');*/      nama_input.setattribute('name', 'nama_input[]');      nama_input.setattribute('class', 'form-control');        var kode_input = document.createelement('input');     /* kode_input.setattribute('id', 'kode1');*/      kode_input.setattribute('name', 'kode_input[]');      kode_input.setattribute('readonly', '');      kode_input.setattribute('class', 'form-control');        var harga_input = document.createelement('input');      harga_input.setattribute('name', 'harga_input[]');      harga_input.setattribute('class', 'form-control');      //harga_input.setattribute('onkeyup', 'sum();');              var jumlah_input = document.createelement('input');      jumlah_input.setattribute('name', 'jumlah_input[]');      jumlah_input.setattribute('class', 'form-control');      //jumlah_input.setattribute('onkeyup', 'sum();');              var total_input = document.createelement('input');      total_input.setattribute('name', 'total_input[]');      total_input.setattribute('class', 'form-control');        var hapus = document.createelement('span');        //                meng append element input      nama.appendchild(nama_input);      kode.appendchild(kode_input);      harga.appendchild(harga_input);      jumlah.appendchild(jumlah_input);      total.appendchild(total_input);      aksi.appendchild(hapus);        hapus.innerhtml = '<button class="btn btn-small btn-default"><b>hapus</b></button>';      //                membuat aksi delete element      hapus.onclick = function () {        row.parentnode.removechild(row);      };          var namaid = 'nama' + (math.floor((1 + math.random()) * 0x10000));      var kodeid = 'kode' + (math.floor((1 + math.random()) * 0x10000));      var hargaid = 'harga' + (math.floor((1 + math.random()) * 0x10000));      var jumlahid = 'jumlah' + (math.floor((1 + math.random()) * 0x10000));      var totalid = 'total' + (math.floor((1 + math.random()) * 0x10000));      nama_input.setattribute('id', namaid);      kode_input.setattribute('id', kodeid);      harga_input.setattribute('id', hargaid);           jumlah_input.setattribute('id', jumlahid);      total_input.setattribute('id', totalid);               // harga_input.setattribute("onkeyup", "sum("+hargaid+","+jumlahid+","+totalid+")");  //  jumlah_input.setattribute("onkeyup", "sum("+hargaid+","+jumlahid+","+totalid+")");       $(jumlah_input).on('keyup',function(){              sum(hargaid,jumlahid,totalid)      })      $(harga_input).on('keyup',function(){              sum(hargaid,jumlahid,totalid)      })      function sum(hargaid,jumlahid,totalid) {                var hrg = document.getelementbyid(hargaid).value;                var jml = document.getelementbyid(jumlahid).value;                var result = parseint(hrg) * parseint(jml);                if (!isnan(result)) {                 document.getelementbyid(totalid).value = result;               }             }        $("#" + namaid).autocomplete({        source: "get_barang.php",        minlength: 2,        select: function(event, ui) {          $("#" + kodeid).val(ui.item.kode);          $("#" + hargaid).val(ui.item.harga);        }      });            i++;      }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>  <table class="table table-condensed" style="margin-left: 10px;">          <thead>            <tr>              <th width="100px">nama</th>              <th width="100px">kode</th>              <th width="100px">harga</th>              <th width="100px">jumlah</th>              <th width="100px">total</th>              <th width="80px"></th>            </tr>          </thead>            <tbody id='itemlist' >            <tr>              <td><input id='nama' name='nama_input[]' class='form-control' /></td>              <td><input id='kode' readonly name='kode_input[]' class='form-control' /></td>              <td><input id='harga' name='harga_input[]' class='form-control' onkeyup="sum();" /></td>              <td><input id='jumlah' autocomplete="off" name='jumlah_input[]' class='form-control' onkeyup="sum();" /></td>              <td><input id='total' name='total_input[]' class='form-control' value=" " /></td>              <td></td>            </tr>          </tbody>            <tr>            <td></td>            <td></td>            <td></td>            <td></td>            <td>              <button type="button" id="sample" class="btn btn-default">                <b>tambah</b>              </button>            </td>          </tr>        </table>


Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -