javascript函数不返回任何结果

时间:2012-06-02 23:18:16

标签: javascript

我有一个javascript函数

<head>
    <title>
        Test
    </title>
    <script type="text/javascript">
        function GetResult()
        {
            count = 0;
            for(var i=0;i<10;i++){
                for(var j=1;j<4;j++){
                    if (document.getElementById("label"+i+j).checked){
                        count +=1;
                    }
                }
            }
            if (count!=10)
                alert("Please answer all the questions");
            else alert(count);
        }
    </script>

在代码中有很多单选按钮。看起来像

<input type="radio" name="q1" value="1" id="label01"/>

但是我的javascript函数从不显示警告。 应该调用函数的按钮是

<input type="button" value="Result" onclick="GetResult()"/>

也许按钮不会调用GetResult

2 个答案:

答案 0 :(得分:0)

试试这个:

    function GetResult() {
        var count = 0;
        for (var i = 0; i < 10; i++){
            for (var j = 1; j < 4; j++){
                var label = document.getElementById("label" + i + j);
                if (label && label.checked) {
                    count +=1;
                }
            }
        }

        if (count != 10) {
            alert("Не все отвечено");
        } else {
            alert(count);
        }
    }
  • var声明中添加了count
  • 修正了一些常规格式。
  • 重要位:检查document.getElementById()是否在检查该值的checked属性之前返回了值。

答案 1 :(得分:0)

详细说明Felix已经说过的内容:以下是检查document.getElementById是否找到指定元素的方法(如果失败则返回null)。

for (var i = 0; i < 10; i++) {
    for (var j = 1; j < 4; j++) {
        // Store the result in a local variable
        var label = document.getElementById("label"+i+j);

        // Include a check whether "null" got returned
        if (label && label.checked) {
            count +=1;
        }
    }
}