使用 JavaScript 为单选按钮中的 "yes" 和 "no" 选择创建一个计数器

Create a counter for "yes" and "no" selections from radio buttons using JavaScript

我一直在阅读网站的问题,但我没有找到任何可以帮助我找到问题解决方案的问题:

我需要创建一个计数器,显示在表单中选择“是”选项的次数以及在表单中选择“否”选项的次数。然后,我需要根据“是”选项的数量占选项总数的百分比来计算百分比。

这是HTML:

        <section>
        <h2>Cumplimiento 1</h2>
            <form class="form3">
            <fieldset class="Compliance">
                <label class="form3header1" for="complianceperc">Cumplimiento (%)</label>
                <span class="percentage" type="number" id="complianceperc" name="complianceperc"></span>

                <label class="form3item1" for="yescount">Sí (cantidad)</label>
                <span id="price" class="counter"></span>    
                
                <label class="form3item2" for="yescount">No (cantidad)</label>
                <span class="counter"></span>

                </fieldset>
            </form>
            
        </section>

这里是 JavaScript(基于 Whosebug 中的其他答案):

$('.counter').text($(':radio:checked').length);

$('input[type=radio]').change(function(){
  $('.counter').text($(':radio:checked').length);
});

这是单选按钮组之一:

<label class="form4item1">1. ¿El Asesor de Servicio comienza a atender al Cliente en los primeros 2 minutos?</label>
            <input class="form4item1radio1" type="radio" name="question1" id="a" value="Accept">
            <input class="form4item1radio2" type="radio" name="question1" id="b" value="Reject">
            <textarea class="form4item1comment" placeholder="Escribe tus notas aquí"></textarea>

我所能得到的只是一个计数器,显示选中的单选按钮的数量,这很接近但不是我需要的。我是 JavaScript 的初学者,所以虽然我意识到我还有很多东西要学,但我们将不胜感激。

在此先感谢您的帮助。

您需要在标签中放入 id 以显示每个 label 的百分比。而您已经制作的 jquery change 函数是 计算 每个答案被点击的单选按钮的次数的操作。

这里是文件js中的jquery函数:

$("input[type=radio]").change(function () {
      let valueButton = $(":radio:checked").val();
      let totalChecked = $(":radio:checked").length;
      let totalAccept = $('input[value="Accept"]:radio:checked').length;
      let totalReject = $('input[value="Reject"]:radio:checked').length;
      $("#showAccept").text((totalAccept / totalChecked) * 100+"%");
      $("#showReject").text((totalReject / totalChecked) * 100+"%");
      // console.log(valueButton);
      // console.log(totalChecked);
      // console.log(totalAccept);
      // console.log(totalReject);
    });

显示每个答案多少百分比的label,在标签中添加一些id

<section>
  <h2>Cumplimiento 1</h2>
  <form class="form3">
    <fieldset class="Compliance">
      <label class="form3header1" for="complianceperc">Cumplimiento (%)</label>
      <span class="percentage" type="number" id="complianceperc" name="complianceperc"></span>

      <label class="form3item1" for="yescount">Sí (cantidad)</label>
      <span id="showAccept" class="counter">0</span>
      <label class="form3item2" for="yescount">No (cantidad)</label>
      <span class="counter" id="showReject">0</span>
    </fieldset>
  </form>
</section>

我在这种情况下添加了两个输入,以正确显示标签百分比 运行:

<!-- 1 -->
<label class="form4item1">1. ¿El Asesor de Servicio comienza a atender al Cliente en los primeros 2 minutos?</label>
<input class="form4item1radio1" type="radio" name="question1" id="a" value="Accept">
<input class="form4item1radio2" type="radio" name="question1" id="b" value="Reject">
<textarea class="form4item1comment" placeholder="Escribe tus notas aquí"></textarea>

<!-- 2 -->
<br>
<label class="form4item1">1. ¿El Asesor de Servicio comienza a atender al Cliente en los primeros 2 minutos?</label>
<input class="form4item1radio1" type="radio" name="question2" id="a" value="Accept">
<input class="form4item1radio2" type="radio" name="question2" id="b" value="Reject">
<textarea class="form4item1comment" placeholder="Escribe tus notas aquí"></textarea>

这里是代码的整体:

$("input[type=radio]").change(function () {
  let valueButton = $(":radio:checked").val();
  let totalChecked = $(":radio:checked").length;
  let totalAccept = $('input[value="Accept"]:radio:checked').length;
  let totalReject = $('input[value="Reject"]:radio:checked').length;
  $("#showAccept").text((totalAccept / totalChecked) * 100+"%");
  $("#showReject").text((totalReject / totalChecked) * 100+"%");
  // console.log(valueButton);
  // console.log(totalChecked);
  // console.log(totalAccept);
  // console.log(totalReject);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section>
  <h2>Cumplimiento 1</h2>
  <form class="form3">
    <fieldset class="Compliance">
      <label class="form3header1" for="complianceperc">Cumplimiento (%)</label>
      <span class="percentage" type="number" id="complianceperc" name="complianceperc"></span>
      
      <label class="form3item1" for="yescount">Sí (cantidad)</label>
      <span id="showAccept" class="counter">0</span>
      
      <label class="form3item2" for="yescount">No (cantidad)</label>
      <span class="counter" id="showReject">0</span>
    </fieldset>
  </form>
</section>

<!-- Label 1 -->
<label class="form4item1">1. ¿El Asesor de Servicio comienza a atender al Cliente en los primeros 2 minutos?</label>
<input class="form4item1radio1" type="radio" name="question1" id="a" value="Accept">
<input class="form4item1radio2" type="radio" name="question1" id="b" value="Reject">
<textarea class="form4item1comment" placeholder="Escribe tus notas aquí"></textarea>

<!-- Label 2 -->
<br>
<label class="form4item1">1. ¿El Asesor de Servicio comienza a atender al Cliente en los primeros 2 minutos?</label>
<input class="form4item1radio1" type="radio" name="question2" id="a" value="Accept">
<input class="form4item1radio2" type="radio" name="question2" id="b" value="Reject">
<textarea class="form4item1comment" placeholder="Escribe tus notas aquí"></textarea>