gpt4 book ai didi

javascript - 当我在 Javascript 中输入第二个模块时,我得到了错误的结果

转载 作者:行者123 更新时间:2023-11-28 18:56:28 28 4
gpt4 key购买 nike

我正在使用 jquery mobile 创建 GPA 计算器,但在输入第二个模块的值后,我没有得到正确的结果,例如,当我将第一个模块的学分插入为 20 并且等级为“A”时,然后我按计算按钮我得到 4.00,到目前为止还不错,但是当我再次向第二个模块插入 20 个学分并且等级为“A”时,它没有给我正确的结果,它显示结果为 0.08,它应该是 4.00

这是我的脚本代码

$(document).ready(function(){
$("#cal").click(function() {
var a = document.getElementById('name1').value
eval(a)
var b = $('#grade1 option:selected').val()
var c = document.getElementById('name2').value
eval(c)
var d = $('#grade2 option:selected').val()
var e = document.getElementById('name3').value
eval(e)
var f = $('#grade3 option:selected').val()
var g = document.getElementById('name4').value
eval(g)
var h = $('#grade4 option:selected').val()
var i = document.getElementById('name5').value
eval(i)
var j = $('#grade5 option:selected').val()
var m1 = a * b;
var m2 = c * d;
var m3 = e * f;
var m4 = g * h;
var m5 = i * j;
var total1 = m1 + m2 + m3 + m4 + m5;
var total2 = a + c + e + g + i;
var total3 = total1/total2
var total3 = total3.toFixed(2);

$('#res').val(total3);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div data-role="page">
<div data-role="header" data-theme="f"> <a data-iconpos="notext" data-role="button" data-icon="home" title="Home">Home</a>
<h1>BENG GPA Calculator</h1>
<form id="form">
<ul data-role="listview" data-inset="true">
<li>Module 1</li>
<li data-role="fieldcontain">
<label for="name1">Credits:</label>
<input type="text" name="name1" id="name1" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade1" class="select">Grade:</label>
<select class="grade1" data-theme="f" id="grade1">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option
>
<option value="0">F</option>
</select>
</li>
<li>Module 2</li>
<li data-role="fieldcontain">
<label for="name2">Credits:</label>
<input type="text" name="name2" id="name2" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade2" class="select">Grade:</label>
<select class="grade2" data-theme="f" id="grade2">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option>
<option value="0">F</option>
</select>
</li>
<li>Module 3</li>
<li data-role="fieldcontain">
<label for="name3">Credits:</label>
<input type="text" name="name3" id="name3" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade3" class="select">Grade:</label>
<select class="grade3" data-theme="f" id="grade3">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option>
<option value="0">F</option>
</select>
</li>
<li>Module 4</li>
<li data-role="fieldcontain">
<label for="name4">Credits:</label>
<input type="text" name="name4" id="name4" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade4" class="select">Grade:</label>
<select class="grade4" data-theme="f" id="grade4">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option>
<option value="0">F</option>
</select>
</li>
<li>Module 5</li>
<li data-role="fieldcontain">
<label for="name5">Credits:</label>
<input type="text" name="name5" id="name5" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade5" class="select">Grade:</label>
<select class="grade5" data-theme="f" id="grade5">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option>
<option value="0">F</option>
</select>
</li>
<li data-role="fieldcontain">
<label for="res">Result:</label>
<input type="text" name="res" id="res" value="" data-clear-btn="true">
</li>
<li class="ui-body ui-body-b">
<fieldset class="ui-grid-a">
<div>
<button type="button" id="cal" name="cal" data-theme="f">Calculate</button>
</div>
</fieldset>
</li>
<li class="ui-body ui-body-b">
<fieldset class="ui-grid-a">
<div>
<button type="reset" data-theme="d">Reset</button>
</div>
</fieldset>
</li>
</ul>
</form>
</div>

最佳答案

  1. 通过parseFloat()将所有值转换为数字。
  2. 使用0作为默认值。
  3. 删除无用的eval()

$(document).ready(function(){
$("#cal").click(function() {
var a = parseFloat(document.getElementById('name1').value) || 0
var b = parseFloat($('#grade1 option:selected').val()) || 0
var c = parseFloat(document.getElementById('name2').value) || 0
var d = parseFloat($('#grade2 option:selected').val()) || 0
var e = parseFloat(document.getElementById('name3').value) || 0
var f = parseFloat($('#grade3 option:selected').val()) || 0
var g = parseFloat(document.getElementById('name4').value) || 0
var h = parseFloat($('#grade4 option:selected').val()) || 0
var i = parseFloat(document.getElementById('name5').value) || 0
var j = parseFloat($('#grade5 option:selected').val()) || 0
var m1 = a * b;
var m2 = c * d;
var m3 = e * f;
var m4 = g * h;
var m5 = i * j;
var total1 = m1 + m2 + m3 + m4 + m5;
var total2 = a + c + e + g + i;
var total3 = total1/total2
var total3 = total3.toFixed(2);

$('#res').val(total3);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div data-role="page">
<div data-role="header" data-theme="f"> <a data-iconpos="notext" data-role="button" data-icon="home" title="Home">Home</a>
<h1>BENG GPA Calculator</h1>
<form id="form">
<ul data-role="listview" data-inset="true">
<li>Module 1</li>
<li data-role="fieldcontain">
<label for="name1">Credits:</label>
<input type="text" name="name1" id="name1" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade1" class="select">Grade:</label>
<select class="grade1" data-theme="f" id="grade1">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option
>
<option value="0">F</option>
</select>
</li>
<li>Module 2</li>
<li data-role="fieldcontain">
<label for="name2">Credits:</label>
<input type="text" name="name2" id="name2" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade2" class="select">Grade:</label>
<select class="grade2" data-theme="f" id="grade2">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option>
<option value="0">F</option>
</select>
</li>
<li>Module 3</li>
<li data-role="fieldcontain">
<label for="name3">Credits:</label>
<input type="text" name="name3" id="name3" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade3" class="select">Grade:</label>
<select class="grade3" data-theme="f" id="grade3">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option>
<option value="0">F</option>
</select>
</li>
<li>Module 4</li>
<li data-role="fieldcontain">
<label for="name4">Credits:</label>
<input type="text" name="name4" id="name4" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade4" class="select">Grade:</label>
<select class="grade4" data-theme="f" id="grade4">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option>
<option value="0">F</option>
</select>
</li>
<li>Module 5</li>
<li data-role="fieldcontain">
<label for="name5">Credits:</label>
<input type="text" name="name5" id="name5" value="" data-clear-btn="true">
</li>
<li data-role="fieldcontain">
<label for="grade5" class="select">Grade:</label>
<select class="grade5" data-theme="f" id="grade5">
<option value="-1">—</option>
<option value="4">A</option>
<option value="3.7">A-</option>
<option value="3.3">B+</option>
<option value="3">B</option>
<option value="2.7">B-</option>
<option value="2.3">C+</option>
<option value="2">C</option>
<option value="1.7">C-</option>
<option value="1.3">D+</option>
<option value="1">D</option>
<option value="0">F</option>
</select>
</li>
<li data-role="fieldcontain">
<label for="res">Result:</label>
<input type="text" name="res" id="res" value="" data-clear-btn="true">
</li>
<li class="ui-body ui-body-b">
<fieldset class="ui-grid-a">
<div>
<button type="button" id="cal" name="cal" data-theme="f">Calculate</button>
</div>
</fieldset>
</li>
<li class="ui-body ui-body-b">
<fieldset class="ui-grid-a">
<div>
<button type="reset" data-theme="d">Reset</button>
</div>
</fieldset>
</li>
</ul>
</form>
</div>

关于javascript - 当我在 Javascript 中输入第二个模块时,我得到了错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553531/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com