2012-02-25 92 views
0

我相信這是一個簡單的問題,但我無法弄清楚我做錯了什麼。爲什麼我的文本框無法使用我的複選框啓用/禁用?

我想完成的是當複選框被選中時我希望它啓用文本框。

這是我的代碼。

<html> 
    <title> iSCSI Admin v0.1 </title> 

    <body> 

     <fieldset style="width:640px;"> 
      <legend> 
       Enable textbox 
       <input type="checkbox" name="checkbox1" onclick="enabledisable()"> 
      </legend> 

      <form name="form1"> 
       Text: 
       <input type="text" name="textname" disabled> 
      </form> 

     </fieldset> 

     <script type="text/javascript"> 
      function enabledisable() { 

       if (document.checkbox1.checked) { 

        document.form1.textname.disabled=false; 

       } else { 

        document.form1.textname.disabled=true; 

       } 

      } 
     </script> 

    </body> 

</html> 
+0

我想你的意思'' – zsquare 2012-02-25 07:56:42

回答

0

好的你解決了這個問題。您需要將複選框放在表單中。 試試這個:

<body> 
    <script type="text/javascript"> 
     function enabledisable() { 
       if (document.form1.checkbox1.checked) {  
        document.form1.textname.disabled=false; 
       } else { 
        document.form1.textname.disabled=true; 
       } 
      }​ 
    </script> 
    <form name="form1"> 
     <fieldset style="width:640px;"> 
      <legend>Enable textbox <input type="checkbox" name="checkbox1" onclick="enabledisable()"></legend> 
       Text: 
       <input type="text" name="textname" disabled="true" > 
     </fieldset> 
    </form> 
</body>​​​​ 
+0

我意識到我的錯別字,並試圖再次和它仍然打破。 – ianc1215 2012-02-25 07:56:25

+0

我認爲它與'legend'標記有關。 – ianc1215 2012-02-25 07:59:08

+0

真棒,解決了問題!所以我需要理解一些東西,只有表單可以包含輸入?只要包含輸入的fieldset標籤位於表單標籤內,它將正常工作? – ianc1215 2012-02-25 08:04:28

0

注:我添加 - > ID = 「checkbox1」 你複選框字段。 注意:我更改了if條件 - > document.getElementById(「checkbox1」)。checked 注意:我更改了啓用/禁用文本字段的代碼 - > document.form1.text.disabled = false;

通知我改變了它從TARGETNAME(這是不存在),到你有是「你的文字文本框的名字。

希望它能幫助。

的iSCSI管理V0.1

<body> 

    <fieldset style="width:640px;"> 
     <legend> 
      Enable textbox 
      <input type="checkbox" id="checkbox1" name="checkbox1" onclick="enabledisable()"> 
     </legend> 

     <form name="form1"> 
      Text: 
      <input type="text" name="text" disabled> 
     </form> 

    </fieldset> 

    <script type="text/javascript"> 

     function enabledisable() { 

      if (document.getElementById("checkbox1").checked) { 

       document.form1.text.disabled=false; 

      } else { 

       document.form1.text.disabled=true; 

      } 

     } 
    </script> 

</body> 

+0

是的,當我腦海中有十幾件事情發生時,會發生錯字。我也在搞我們的iSCSI服務器,所以爲什麼我這裏的模擬被稱爲「iSCSI管理員」,我需要把它放在那裏。 – ianc1215 2012-02-25 08:00:32

+0

yup拼寫總是發生:D同意。 – Syed 2012-02-25 08:24:50

1

試試這個:


<input id="textname" type="text" /> 


function enabledisable() { 
    if (document.getElementById("Checkbox1").checked) { 
     document.form1.textname.disabled = false; 
    } 
    else { 
     document.form1.textname.disabled = true; 
    } 
} 
+0

我會upvote這個答案,但原來的帖子沒有在複選框的ID .. – 2012-02-25 08:13:37

+0

非常酷這個作品完美,我只是與大寫「C」的一個小問題,但除了完美!,謝謝。 – ianc1215 2012-02-25 08:22:32

+0

我給了upvote,因爲如果我知道這件事,我會這樣做。 – ianc1215 2012-02-25 08:23:24

相關問題