创建小计,在连续单击单选按钮时将点相加,而不是一次全部单击

Create subtotal that adds up points as radio buttons are clicked in succession - not all at once

本文关键字:单击 全部 一次 连续 单选按钮 创建      更新时间:2023-09-26

我创建了一个带有点的单选按钮的表单。我想知道如何在他们获得积分时对积分进行小计——一个连续的总数。一次只能选择一个单选按钮。我是一个编码初学者,但很热衷。非常感谢。

以下内容应该会让您开始。假设你有多项选择题,你想根据是否选择了正确的答案来更新总数。

一个非常简单的实现是在表单上放置一个单击侦听器,并每次根据选定的单选按钮运行小计:

<form action="" onclick="updateTotal(this);">
  <table style="border: 1px solid #666666;">
    <tr>
      <td>Question 1
      <td><input type="radio" name="q1" value="0">wrong answer<br>
          <input type="radio" name="q1" value="0">wrong answer<br>
          <input type="radio" name="q1" value="1">right answer<br>
          <input type="radio" name="q1" value="0">wrong answer<br>
    <tr>
      <td>Question 2
      <td><input type="radio" name="q2" value="0">wrong answer<br>
          <input type="radio" name="q2" value="0">wrong answer<br>
          <input type="radio" name="q2" value="0">wrong answer<br>
          <input type="radio" name="q2" value="1">right answer<br>
    <tr>
      <td>Your total:
      <td><input type="text" name="subtotal" value="0">
    <tr>
      <td><input type="reset" value="Clear form">
      <td><input type="submit" value="Send answers">
  </table>
</form>
<script type="text/javascript">
  function updateTotal(form) {
    var el, els = form.elements;
    var subtotal = 0;
    for (var i=0, iLen=els.length; i<iLen; i++) {
      el = els[i];
      if (el.type == 'radio') subtotal += el.checked? Number(el.value) : 0;
    }
    form.subtotal.value = subtotal; 
  }
</script>