-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);
        }
    }
  • 宣言varに追加。count
  • 一般的なフォーマットを修正しました。
  • 重要な点: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 に答える