javascript - 如何仅计算每个选中的复选框

标签 javascript html laravel checkbox

我只需要计算表字段 (harga_obat*jumlah) 中选中的复选框

这是我的 foreach 数据

@foreach ($obat as $o)
<tr>
    <td>
        <input id="check" type="checkbox" name="select[]" value="{{ $o->nama_obat }}">
    </td>
    <td>
        <input type="text" class="form-control" name="kode_obat" value="{{ $o->kode_obat }}" readonly>
    </td>
    <td>
        <input type="text" class="form-control" name="nama_obat" value="{{ $o->nama_obat }}" readonly>
    </td>
    <td>
        <input id="harga" type="text" class="form-control" name="harga_obat" value="{{ $o->harga_obat }}"
            onkeyup="sum()">
    </td>
    <td>
        <input id="jumlah" type="text" class="form-control" name="jumlah" onkeyup="sum()">
    </td>
    <td>
        <input id="total" type="text" class="form-control total-harga" name="total_harga" onkeyup="sum()" readonly>
    </td>
</tr>
@endforeach

这是我试过的,这只对一行有效,如下图所示

function sum() {
    var harga = document.getElementById('harga').value;
    var jumlah = document.getElementById('jumlah').value;
    var hasil = parseInt(harga) * parseInt(jumlah);
    if (!isNaN(hasil)) {
        document.getElementById('total').value = hasil;
    }
}

enter image description here

最佳答案

一个id只能在一个页面中使用一次,id = identifier,所以可以使用object id来确保它是唯一的,并将其传递给sum函数

例如

@foreach ($obat as $o)
<tr>
    <td>
        <input id="check" type="checkbox" name="select[]" value="{{ $o->nama_obat }}">
    </td>
    <td>
        <input type="text" class="form-control" name="kode_obat" value="{{ $o->kode_obat }}" readonly>
    </td>
    <td>
        <input type="text" class="form-control" name="nama_obat" value="{{ $o->nama_obat }}" readonly>
    </td>
    <td>
        <input id="harga-{{ $o->id }}" type="text" class="form-control" name="harga_obat" value="{{ $o->harga_obat }}"
            onkeyup="sum({{ $o->id }})">
    </td>
    <td>
        <input id="jumlah-{{ $o->id }}" type="text" class="form-control" name="jumlah" onkeyup="sum({{ $o->id }})">
    </td>
    <td>
        <input id="total-{{ $o->id }}" type="text" class="form-control total-harga" name="total_harga"
            onkeyup="sum({{ $o->id }})" readonly>
    </td>
</tr>
@endforeach


<script>
    function sum(id) {
        var harga = document.getElementById('harga-' + id).value;
        var jumlah = document.getElementById('jumlah-' + id).value;
        var hasil = parseInt(harga) * parseInt(jumlah);
        if (!isNaN(hasil)) {
        document.getElementById('total-' + id).value = hasil;
        }
    }
</script>

希望对你有帮助

关于javascript - 如何仅计算每个选中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58712700/

相关文章:

javascript - 如何在 JavaScript 中使用 ISO 8601 格式化带有时区偏移的日期?

javascript - JQuery 验证未显示正确的消息

javascript - 使用 JQuery,如何停止向上传播 DOM 的单击事件?

php - Laravel Spatie 媒体库 model_type 没有默认值

php - Laravel dompdf 错误 "Image not found or type unknown"

javascript - jQuery .width() 在页面加载时关闭

javascript - 单击时更改 css 字体粗细

html - 将文本限制在 div 内的 2 行并限制所有文本溢出?

javascript - 具有功能嵌套输入的 HTML 按钮

php - 在 Laravel 中咨询多对多关系