首页 > 解决方案 > 使用 JavaScript 自定义数学公式

问题描述

当我从 Marks Allocation 下拉列表中选择值时,它将出现在 weightage(total) 列和每个 weightage 列中,从每个标记列中获取的值附加在此处的图像,并且所有五列值根据权重(总计) 值,但问题是该值的总和不等于权重(总计)。数学公式是(每个标记列/总计 * 标记分配)。请帮助我更正我的编码。

标记分配字段:

<div class="form-row">
    <label>Marks Allocation (%):</label>
<select name="percentage" id="percentage" onchange="updateVall()" class="form-control" oninput="this.className = ''">
<?php 
$sql = mysqli_query($connection,"SELECT * FROM continous_assess"); 
while ($row=mysqli_fetch_array($sql))
{ ?>
              
    <option value="<?php echo $row['percentage']; ?>"><?php echo $row['percentage']; ?></option>
<?php 
}
?>
</select>
 
</div>

用 java 脚本标记域代码:

<fieldset>
    <div class="form-group">
        <label>Marks</label>
        <input type="number" id="m1" oninput="testing1()" class="prc"/>
        <input type="number" id="m2" oninput="testing2()" class="prc"/>
        <input type="number" id="m3" oninput="testing3()" class="prc"/>
        <input type="number" id="m4" oninput="testing4()" class="prc"/>
    <input type="number" id="m5" oninput="testing5()" class="prc"/>
        <label>Total</label>
        <output id="result" name="result"></output>
    </div>
</fieldset> 

<script src="jquery.min.js"></script>
<script>
    $('.form-group').on('input','.prc',function(){
        var totalSum = 0;
        $('.form-group .prc').each(function(){
            var inputVal = $(this).val();
            if($.isNumeric(inputVal)){
                totalSum += parseFloat(inputVal);
            }
    });
        $('#result').val(totalSum);
    });
</script>

权重栏代码:

 <div class="form-group">
    <label>Weightage</label>
    <input type="number" id="w1" name="w1" class="prc1"/>
     <input type="number" id="w2" name="w2" class="prc1"/>
     <input type="number" id="w3" name="w3" class="prc1"/>
     <input type="number" id="w4" name="w4" class="prc1"/>
     <input type="number" id="w5" name="w5" class="prc1"/>
      <label>Total</label>
       <input type="text" name="exampleInput" id="exampleInput" class="prc1"/>
  </div>

Javascript代码:

<script type="text/javascript">
function testing1() {
  //alert("rubine_m1");
  var percentageVal = document.getElementById("percentage").value;
  var ResultVal = document.getElementById("result").value;
  var marksVal = document.getElementById("m1").value;
  var w1Resval = marksVal / ResultVal * percentageVal;
  document.getElementById("w1").value = w1Resval;
}
function testing2() {
  //alert("rubine_m2");
  var percentageVal = document.getElementById("percentage").value;
  var ResultVal = document.getElementById("result").value;
  var marksVal = document.getElementById("m2").value;
  var w2Resval = marksVal / ResultVal * percentageVal;
  document.getElementById("w2").value = w2Resval;
}
function testing3() {
  //alert("rubine_m3");
  var percentageVal = document.getElementById("percentage").value;
  var ResultVal = document.getElementById("result").value;
  var marksVal = document.getElementById("m3").value;
  var w3Resval = marksVal / ResultVal * percentageVal;
  document.getElementById("w3").value = w3Resval;
}
function testing4() {
  //alert("rubine_m4");
  var percentageVal = document.getElementById("percentage").value;
  var ResultVal = document.getElementById("result").value;
  var marksVal = document.getElementById("m4").value;
  var w4Resval = marksVal / ResultVal * percentageVal;
  document.getElementById("w4").value = w4Resval;
}
function testing5() {
  //alert("rubine_m4");
  var percentageVal = document.getElementById("percentage").value;
  var ResultVal = document.getElementById("result").value;
  var marksVal = document.getElementById("m5").value;
  var w5Resval = marksVal / ResultVal * percentageVal;
  document.getElementById("w5").value = w5Resval;
}
</script>

标签: javascriptphpinput

解决方案


推荐阅读