平均分数审查系统在HTML和JavaScript
Average Score Review System in HTML and JavaScript
我正在尝试使用输入范围滑块创建一个审查中心。它们的范围从1到10,每个滑道的侧面显示一个数字,后面跟着/10。JavaScript函数用于将滑块一侧的数字更改为正确的数字。
问题来自平均分函数findaaverage()。当您调整一个滑块时,显示的值([span id="averageScore"] in first [tr])范围从正确值到随机值,如233.5,这是不可能的,因为它是10分之一。当第二个和第三个滑块被调整时,情况就更糟了。
下面是正在运行的页面:http://magnemation.com/games/review_center_test.html
我很想知道为什么会这样,很抱歉缩进。欢呼。
<table>
<tr>
<td>Design</td>
<td>
<input type="range" name="Design" min="0" max="10" step="0.5" onchange="showValue1(this.value)" />
<br>
<br>
</td>
<td align="right" width="22px"> <span id="Design">0</span>
</td>
<td align="left">/10</td>
<td rowspan="3" align="center" width="300px">Total Score:
<br><span id="averageScore" style="font-size: 60px;">0</span>
</td>
</tr>
<script type="text/javascript">
function showValue1(newValue) {
document.getElementById("Design").innerHTML = newValue;
findaverage();
}
</script>
<tr>
<td>Functionality</td>
<td>
<input type="range" name="Functionality" min="0" max="10" step="0.5" onchange="showValue2(this.value)" />
<br>
<br>
</td>
<td align="right" width="22px"> <span id="Functionality">0</span>
</td>
<td align="left">/10</td>
</tr>
<script type="text/javascript">
function showValue2(newValue) {
document.getElementById("Functionality").innerHTML = newValue;
findaverage();
}
</script>
<tr>
<td>Ease of Use</td>
<td>
<input type="range" name="Ease of Use" min="0" max="10" step="0.5" onchange="showValue3(this.value)" />
<br>
<br>
</td>
<td align="right" width="22px"> <span id="Ease of Use">0</span>
</td>
<td align="left">/10</td>
</tr>
<script type="text/javascript">
function showValue3(newValue) {
document.getElementById("Ease of Use").innerHTML = newValue;
findaverage();
}
</script>
<script type="text/javascript">
function findaverage() {
var total = 0;
var average = 0;
total += document.getElementById("Design").innerHTML;
total += document.getElementById("Functionality").innerHTML;
total += document.getElementById("Ease of Use").innerHTML;
average = total / 3;
var rounded = Math.round(average * 2) / 2;
document.getElementById("averageScore").innerHTML = rounded;
}
</script>
您正在连接字符串而不是添加数字。使用parseFloat()将innerHTML字符串转换为可用的数字。
function findaverage() {
var total = 0;
var average = 0;
total += parseFloat(document.getElementById("Design").innerHTML);
total += parseFloat(document.getElementById("Functionality").innerHTML);
total += parseFloat(document.getElementById("Ease of Use").innerHTML);
average = total/3;
var rounded = Math.round(average*2)/2;
document.getElementById("averageScore").innerHTML=rounded;
}
相关文章:
- 来自文本输入null的html javascript变量
- Html/Javascript-如何屏蔽除英国以外的所有欧盟国家,并允许所有非欧盟国家
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- HTML/Javascript表单会自动重置
- html/javascript中的可拖动文本
- 在HTML/JavaScript中减去两个数字
- 基本的HTML Javascript程序.这是怎么回事
- 一个html/javascript'小工具'知道用户何时单击了小部件外的任意位置
- HTML/JavaScript拖动&Drop-是否可以使重影图像*NOT*看起来'冲洗掉'
- 在HTML/Javascript文件中获取App Inventor 2变量值
- HTML/JavaScript表格标题
- 如何修复在浏览器中打开后出现在屏幕上的html/Javascript代码
- 在HTML JavaScript头部分运行Google脚本函数
- 如何在 html/javaScript/Jquery 中“浏览文件夹”
- 带有消息html/javascript的进度条
- 在html/javascript中请求撤消/重做事件
- 使用HTML/Javascript表单使用ActiveXObject创建带有嵌入图像的outlook电子邮件
- 使用html/javascript启动小部件
- 移动html/javascript编程中的变量传递