2013-07-13 159 views
0

我需要一些幫助,下面的代碼:如何在JavaScript中將數組導入到函數中?

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

我需要調用陣列「opcao」的功能的範圍內「CHECK1()」和「CHECK2()」。我怎樣才能做到這一點?

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

我試過Mishik的建議沒有工作。我需要的是函數'check1()'和'check2()'來訪問相同的數組'opcao'。 如果我在每個函數中寫入數組,代碼完美工作。但是,我將不得不爲每個創建的函數重複相同的數組。

+3

你是什麼意思的「呼叫」? –

+1

爲什麼你使用這樣的短ID?你是否將JS編程與打字練習混合在一起? ;) – alfasin

+0

爲什麼你使用無線電按鈕? –

回答

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; 
       } 
      } 
     } 
    } 
} 
+0

我相信只要將腳本標籤放在底部就足以在OP的情況下。儘管如此,這是一個更加傻瓜式的解決方案。 – finishingmove

+0

Finishingmove,您的解決方案可行! –

相關問題