Попытка обновить итоговый столбец по # ответам из выбранного «Да» - PullRequest
1 голос
/ 20 апреля 2020

каждый.

Моя цель - добавить общее количество ответов «Да», и у меня возникли небольшие проблемы. Я также хотел бы, чтобы итоговый столбец вычитался, но я еще не попал туда, поскольку число «Да» отображается неправильно. К вашему сведению, я вызываю функцию Calculate ()

Любая помощь будет принята с благодарностью. Большое спасибо.

Вот код.

HTML:
-- Question
<li id="qid61915_1" value="11" style="margin: 20px 0px 30px 0px" ;="" required="true">Test Question

-- Yes
<div class="radio answerRadio width-70"><label><input type="radio" name="qid61915Radio_1" 
id="aid73380_1" class="currentStepAnswer" value="Yes">Yes</label></div>

-- No
<div class="radio answerRadio width-70"><label><input type="radio" name="qid61915Radio_1" 
id="aid73381_1" class="currentStepAnswer" value="No">No</label></div></li>

Javascript:

function calculateSum() {
    var e = document.getElementsByClassName('currentStepAnswer');
    var i; 
    var s = 0;
    for (i = 0; i < e.length; i++) {
       if (e[i].value == "Yes") { 
           s++ ; 
       }
 }
       $("#fallRiskTotal").html(s.toFixed(1));

}

- Этот JavaScript вызывается в другой функции, которая отображает Q и A

   if (currentQuestionNum == 11) {
      riskAssessTitles += "<hr>";
      riskAssessTitles += "<h4 class='left' style='margin: 20px 0px 15px 0px';>Total:
      <span id='fallRiskTotal' style='padding:20px 0px 0px 3px';></span></h4>";
      $(riskAssessTitles).insertAfter($('#qid' + qid + '_' + instanceNum));
  }

  calculateSum();

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Рассмотрим следующий пример.

$(function() {
  function calculateSum() {
    return $(".currentStepAnswer[value='Yes']:checked").length;
  }

  function calculatePerc() {
    var y = $(".currentStepAnswer[value='Yes']:checked").length;
    var t = $("ul li").length;
    return y / t;
  }

  $(".currentStepAnswer").change(function() {
    $("#fallRiskTotal").html(calculateSum().toFixed(2) + " " + (calculatePerc() * 100).toFixed(2) + "%");
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li id="qid61915_1" value="11" style="margin: 20px 0px 30px 0px" required="true">Test Question
    <div class="radio answerRadio width-70"><label><input type="radio" name="qid61915Radio_1" 
id="aid73380_1" class="currentStepAnswer" value="Yes">Yes</label></div>
    <div class="radio answerRadio width-70"><label><input type="radio" name="qid61915Radio_1" 
id="aid73381_1" class="currentStepAnswer" value="No">No</label></div>
  </li>
  <li id="qid61915_2" value="12" style="margin: 20px 0px 30px 0px" required="true">Test Question
    <div class="radio answerRadio width-70"><label><input type="radio" name="qid61915Radio_2" 
id="aid73380_2" class="currentStepAnswer" value="Yes">Yes</label></div>
    <div class="radio answerRadio width-70"><label><input type="radio" name="qid61915Radio_2" 
id="aid73381_2" class="currentStepAnswer" value="No">No</label></div>
  </li>
  <li id="qid61915_3" value="13" style="margin: 20px 0px 30px 0px" required="true">Test Question
    <div class="radio answerRadio width-70"><label><input type="radio" name="qid61915Radio_3" 
id="aid73380_3" class="currentStepAnswer" value="Yes">Yes</label></div>
    <div class="radio answerRadio width-70"><label><input type="radio" name="qid61915Radio_3" 
id="aid73381_1" class="currentStepAnswer" value="No">No</label></div>
  </li>
</ul>
<div id="fallRiskTotal"></div>
0 голосов
/ 20 апреля 2020
// function to return # of 'Yes's
function calculateSum() {
    return $(".currentStepAnswer[value='Yes']:checked").length;
};

$(function() {
    $(".currentStepAnswer").change(function() {
        $("#fallRiskTotal").html(calculateSum().toFixed(1));
    });
});
...