0

以下のコードについて助けが必要です。

    <script type="text/javascript">
        var opcao = new Array (
            document.getElementById("cred_form_1864_1_wpcf-pde_Pesquisas_descontinuadas"),
            document.getElementById("cred_form_1864_1_wpcf-pnps_Pesquisas_nao_patenteaveis-sigilosas")
        );

        function check1(){
            if (opcao[0].checked == true){
                for (var i = 0; i < opcao.length; i++){
                    if (i != 0){
                        opcao[i].checked = false;
                        opcao[i].disabled = true;
                    }
                }
            }
        }

        function check2(){
            if (opcao[1].checked == true){
                for (var i = 0; i < opcao.length; i++){
                    if (i != 1){
                        opcao[i].checked = false;
                        opcao[i].disabled = true;
                    }
                }
            }
        }
    </script>

関数「check1 ()」および「check2 ()」内で配列「opcao」を呼び出す必要があります。これどうやってするの?

====================

Mishik の提案を試してみましたが、うまくいきませんでした。必要なのは、関数「check1 ()」と「check2 ()」が同じ配列「opcao」にアクセスすることです。各関数内に配列を記述すると、コードは完全に機能します。しかし、作成された関数ごとに同じ配列を繰り返さなければならない同じ値はどうすればよいでしょうか。

4

1 に答える 1

2

ページが読み込まれる前にコードが実行されると、opcao配列には実際には必要な要素が含まれません。

スクリプトが実行されるまでに必要window.onloadなすべての要素がdocument.

window.onload = function() {
    var opcao = new Array (
        document.getElementById("cred_form_1864_1_wpcf-pde_Pesquisas_descontinuadas"),
        document.getElementById("cred_form_1864_1_wpcf-pnps_Pesquisas_nao_patenteaveis-sigilosas")
    );

    function check1(){
        if (opcao[0].checked == true){
            for (var i = 0; i < opcao.length; i++){
                if (i != 0){
                    opcao[i].checked = false;
                    opcao[i].disabled = true;
                }
            }
        }
    }

    function check2(){
        if (opcao[1].checked == true){
            for (var i = 0; i < opcao.length; i++){
                if (i != 1){
                    opcao[i].checked = false;
                    opcao[i].disabled = true;
                }
            }
        }
    }
}
于 2013-07-13T17:37:37.747 に答える