JavaScript代码只适用于Chrome,但不适用于Firefox,IE,Opera和Safari

问题描述:

我是编程新手,我在JavaScript中尝试了一些东西,并且在Chrome中运行良好。但它无法在IE,Firefox,Safari和Opera中运行。我的代码有什么问题吗?JavaScript代码只适用于Chrome,但不适用于Firefox,IE,Opera和Safari

function hp(form) { 
    var count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0, count6 = 0, count7 = 0, count8 = 0, count9 = 0, count10 = 0; 
    for (var i = 0; i < 3; i++) { 
     if (form.q1[i].checked == true) { 
      count1++; 
     } 
    } 
    if (count1 !== 1) { 
     alert("Please Answer 1st Question"); 
     return false; 
    } 
    for (var i = 0; i < 3; i++) { 
     if (form.q2[i].checked == true) { 
      count2++; 
     } 
    } 
    if (count2 !== 1) { 
     alert("Please Answer 2nd Question"); 
     return false; 
    } 
    for (var i = 0; i < 3; i++) { 
     if (form.q3[i].checked == true) { 
      count3++; 
     } 
    } 
    if (count3 !== 1) { 
     alert("Please Answer 3rd Question"); 
     return false; 
    } 
    for (var i = 0; i < 3; i++) { 
     if (form.q4[i].checked == true) { 
      count4++; 
     } 
    } 
    if (count4 !== 1) { 
     alert("Please Answer 4th Question"); 
     return false; 
    } 
    for (var i = 0; i < 3; i++) { 
     if (form.q5[i].checked == true) { 
      count5++; 
     } 
    } 
    if (count5 !== 1) { 
     alert("Please Answer 5th Question"); 
     return false; 
    } 
    for (var i = 0; i < 3; i++) { 
     if (form.q6[i].checked == true) { 
      count6++; 
     } 
    } 
    if (count6 !== 1) { 
     alert("Please Answer 6th Question"); 
     return false; 
    } 

    for (var i = 0; i < 3; i++) { 
     if (form.q7[i].checked == true) { 
      count7++; 
     } 
    } 
    if (count7 !== 1) { 
     alert("Please Answer 7th Question"); 
     return false; 
    } 
    for (var i = 0; i < 3; i++) { 
     if (form.q8[i].checked == true) { 
      count8++; 
     } 
    } 
    if (count8 !== 1) { 
     alert("Please Answer 8th Question"); 
     return false; 
    } 
    for (var i = 0; i < 4; i++) { 
     if (form.q9[i].checked == true) { 
      count9++; 
     } 
    } 
    if (count9 !== 1) { 
     alert("Please Answer 9th Question"); 
     return false; 
    } 
    for (var i = 0; i < 3; i++) { 
     if (form.q10[i].checked == true) { 
      count10++; 
     } 
    } 
    if (count10 !== 1) { 
     alert("Please Answer 10th Question"); 
     return false; 
    } 
    answer1 = (form.q1.value); 
    answer2 = (form.q2.value); 
    answer3 = (form.q3.value); 
    answer4 = (form.q4.value); 
    answer5 = (form.q5.value); 
    answer6 = (form.q6.value); 
    answer7 = (form.q7.value); 
    answer8 = (form.q8.value); 
    answer9 = (form.q9.value); 
    answer10 = (form.q10.value); 
    var a = parseInt(answer1); 
    var b = parseInt(answer2); 
    var c = parseInt(answer3); 
    var d = parseInt(answer4); 
    var e = parseInt(answer5); 
    var f = parseInt(answer6); 
    var g = parseInt(answer7); 
    var h = parseInt(answer8); 
    var ii = parseInt(answer9); 
    var j = parseInt(answer10); 
    var c = a + b + c + d + e + f + g + h + ii + j; 
    //document.getElementById("result").innerHTML= "The selected values are "+"</br>"+a+"</br>"+b+c+d+e+f+g+h+ii+j+"</br>"+c; 
    if (c <= 20) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    else if ((c > 20) && (c <= 25)) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    else if ((c > 25) && (c <= 30)) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    else if ((c > 30) && (c <= 40)) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    else if ((c > 40) && (c <= 50)) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    else if ((c > 50) && (c <= 60)) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    else if ((c > 60) && (c <= 65)) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    else if ((c > 65) && (c <= 75)) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    else if ((c > 75) && (c <= 90)) { 
     document.getElementById("total").innerHTML = "<h3>" + "ABCD" + "</h3>" + "</br>" + "<IMG ALIGN='center' " + "SRC='images/img.png'>"; 
    } 
    c = 0; 
} 

我在本地主机上试过这段代码,我在Google Chrome中获得了我想要的输出结果。当我在Firefox和其他浏览器中尝试相同的页面时,它失败了。只有复选框验证工作正常。 在此先感谢

+1

你在控制台中是否有错误?右键单击 - 检查元素。 Firefox使用萤火虫,IE浏览器F12等? – 2014-10-30 15:30:07

+0

控制台给我这个错误 未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则该文档将在某些浏览器配置中呈现乱码文本。页面的字符编码必须在文档或传输协议中声明。 – 2014-10-30 15:33:33

+0

@AmarIlindra这将是HTML编码的问题,您将HTML编码设置为什么? – 2014-10-30 15:35:01

从个人经验来看,我发现Chrome对于小错误更为宽容。奇怪的是你怎么没有在调试框中得到一个错误... 但是,从阅读代码我可以看到一个地方是你定义变量的地方a,b,c...我建议在每个地方放一个逗号。所以,你得到:

var a = parseInt(answer1), 
    b = parseInt(answer2), 
    c = parseInt(answer3), 
    d = parseInt(answer4), 
    e = parseInt(answer5), 
    f = parseInt(answer6), 
    g = parseInt(answer7), 
    h = parseInt(answer8), 
    ii = parseInt(answer9), 
    j = parseInt(answer10); 

然后这里是我认为你有一个错误。在定义c之后,您再次有var c = ...。所以,请尝试在那里删除var