因此,我一直在编写一个脚本,该脚本接受来自 10 个不同字段的输入,如果下拉列表中的任何内容发生更改,popScore 和 popLevel 也会相应更新。我遇到了一个小问题,它产生了一个小数点后 10 位左右的数字,所以我不得不将它四舍五入到 2。javascript 适用于除 Internet Explorer 之外的所有浏览器。是什么导致它在 Internet Explorer 上失败?
下面我只包含了其中一个下拉列表的 javascript 以节省空间,但它们之间的区别在于 popScore 的值和下拉列表中的项目数。popLevel 最多只能达到 5。
非常感谢任何有助于理解为什么它不起作用的帮助。谢谢。
<script type="text/javascript">
$(document).ready(function(){
//global variables
var popLevel = 0;
var popScore = 0.00;
var q1=0;
var q2=0;
var q3=0;
var q4=0;
var q5=0;
var q6=0;
var q7=0;
var q8=0;
var q9=0;
var q10=0;
$('.selectionbox1').change(function() {
if(q1 != 0){
if(q1 == 1){
popScore = popScore - 0.13;
}
else if(q1 == 2){
popScore = popScore - 0.25;
}
else if(q1 == 3){
popScore = popScore - 0.38;
}
else if(q1 == 4){
popScore = popScore - 0.50;
}
else if(q1 == 5){
popScore = popScore - 0.63;
}
}
var b = document.getElementById("q1").value;
if(b == 1){
popScore = popScore + 0.13;
}
else if(b == 2){
popScore = popScore + 0.25;
}
else if(b == 3){
popScore = popScore + 0.38;
}
else if(b == 4){
popScore = popScore + 0.50;
}
else if(b == 5){
popScore = popScore + 0.63;
}
if(popScore > 4.00){
popLevel=5;
}
else if(popScore > 3.00){
popLevel=4;
}
else if(popScore > 2.00){
popLevel=3;
}
else if(popScore > 1.00){
popLevel=2;
}
else if(popScore > 0.00){
popLevel=1;
}
//record the current value of the field changed
var e = document.getElementById("q1");
q1=e.options[e.selectedIndex].value;
//round to 2 decimal places for score
popScore = parseFloat(popScore.toFixed(2));
//update the fields for pop score and pop level
var txt = document.getElementById("popLevel");
txt.innerHTML=popLevel;
var txt2 = document.getElementById("popScore");
txt2.innerHTML=popScore;
});