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.onloaddocument.

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 回答