そのため、私は10の異なるフィールドからの入力を受け取るスクリプトの作成に取り組んでおり、ドロップダウンのいずれかが変更されると、それに応じてpopScoreとpopLevelが更新されます。小数点以下10桁程度の数値が生成されるという小さな問題が発生したため、2に丸める必要がありました。javascriptはInternetExplorerを除くすべてのブラウザーで機能します。Internet Explorerで失敗する原因は何ですか?
以下に、スペースを節約するためにドロップダウンの1つだけの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;
});