-1

我有一个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

4

2 回答 2

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);
        }
    }
  • 添加varcount声明中。
  • 修正了一些一般格式。
  • document.getElementById()重要的一点:在检查该值的checked属性之前检查是否返回了一个值。
于 2012-06-02T23:30:09.520 回答
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;
        }
    }
}
于 2012-06-02T23:30:26.313 回答