我需要的总和(每个复选框值X其文本框值)

<input name="33" value="280000" onclick="test(this);" type="checkbox">
<input id="33" style="width:20px;float: left; text-align: center" type="text">


例:

 fist checkbox value = 20 X its textbox value = 10
 second checkbox value = 5 X its textbox value = 2
 my answer = 20*10 + 5*2 = 210 (ok)


当复选框值更改我的答案更改时,也无需单击,我也需要。

最佳答案

const totalBox = document.getElementById("total")

document.querySelectorAll("input[type=text]").forEach((input) => input.addEventListener("input", calculate))
document.querySelectorAll("input[type=checkbox]").forEach((input) => input.addEventListener("change", calculate))
function calculate() {
  const checkboxes = document.querySelectorAll("input[type=checkbox]")
  let total = 0
  for (let checkbox of checkboxes) {
  	if (checkbox.checked) {
      total += Number(checkbox.value) * Number(document.getElementById(checkbox.name).value)
    }
  }
  totalBox.textContent = total
}
calculate()

<input name="33" value="280000" type="checkbox" checked>
<input id="33" value="10" type="text">
<br/>
<input name="34" value="150000" type="checkbox">
<input id="34" value="15" type="text">
<h2>Total: <span id="total"></span></h2>

08-19 17:22