首页 > 解决方案 > 根据选择选项填充文本字段

问题描述

当我选择某个选项时,我试图获得“hargaJual”值。但是当我在表格中插入一个新行并选择一个新选项时,它只会更改“Harga”的第一行而将第二行留空。

结果如下:

在此处输入图像描述

<td>
<select class="custom-select" id="kodeSparepart" name="kodeSparepart[]">
    <option value=""> --Pilih Sparepart-- </option>";
    @foreach($sparepart as $s) {
            <option value="{{ $s['kodeSparepart'] }}" data-price="{{ $s->hargaJual }}"> {{ $s['namaSparepart'] }} </option>";
     }
    @endforeach
 </select>
 </td> 
 <td> 
    <input class="form-control" type="text" id="hargaJualTransaksi" name="hargaJualTransaksi[]" autocomplete="off" readonly> 
 </td>

这是我的 javascript

    //for insert new row in table
 $(function(){
    $('#addMore').on('click', function() {
            var data = $("#tb tr:eq(1)").clone(true).appendTo("#tb");
            data.find("input").val('');
    });

    $(document).on('click', '#remove', function() {
        var trIndex = $(this).closest("tr").index();
            if(trIndex>=1) {
            $(this).closest("tr").remove();
        } else {
            alert("Sorry!! Can't remove first row!");
        }
    });
});    
//fill hargaJualTransaksi field
$(function() {
    $('#kodeSparepart').on('change', function(){
        var price = $(this).children('option:selected').data('price');
        $('#hargaJualTransaksi').val(price);
    });
});

标签: javascriptlaravel

解决方案


试试下面的代码:

$("body").on('click', '#kodeSparepart', function (event) {
  var price = $(this).children('option:selected').data('price');
        $('#hargaJualTransaksi').val(price);
}

推荐阅读