0

我编写了以下代码,当复选框被选中时,它会启用一个文本框。该代码存在一个小缺陷。当我们第一次执行时,无论复选框是选中还是未选中,都会启用文本框。但是几次之后,代码就可以正常工作了。请帮助我找到错误。

<html>
<head>
    <title>SHOP ALL</title>
        <link rel="stylesheet" type="text/css" href="style.css">
        <script language="javascript" src="addcart.js"></script>
        <script type="text/javascript">
            function enableDisable(bEnable, textBoxID)
            {
                document.getElementById(textBoxID).disabled = !bEnable
            }
        </script>
</head>
     <body>
<form>
        <table align="center"  width="100%" cellpadding="50px">
            <tr>
                <th> TICK ON THE THINGS YOU NEED </th>
                <th> PRODUCT </th>
                <th> DESCRIPTION </th>
                <th> NO OF ITEMS </th>
            </tr>
            <tr>
                <td><input type="checkbox" name="shoe" onclick="enableDisable(this.checked, '0')"></td>
                <td><img src="images/1.jpg" alt="shoe1" width="180px" height="200px"></td>
                <td><h4>-------</h4></td>
                            </tr>
                        --------------
 </body>
</html`>
4

1 回答 1

1

你应该把你的代码:

    <script type="text/javascript">
        function enableDisable(bEnable, textBoxID)
        {
            document.getElementById(textBoxID).disabled = !bEnable
        }
    </script>

在关闭主体之前,或者在 DOM 就绪时调用。通过这种方式,代码甚至在复选框和文本字段存在之前就被执行。

默认情况下,文本输入处于启用状态,因此您可能还需要将复选框设置为选中状态。

这是一个工作版本:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
</head>
<body>
  <input type="text" id="txtBox" />
  <input type="checkbox" id="chkbox" onchange="document.getElementById('txtBox').disabled=!this.checked;" checked="checked" />
</body>
</html>

还有一个演示:http: //jsbin.com/ulemim/2

于 2013-01-15T11:38:31.090 回答