我只需要计算表字段 (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;
}
}
最佳答案
一个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/