2012-02-25 93 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

相关问题