选中复选框时,应使文本框也启用,否则禁用

时间:2013-01-15 11:35:44

标签: javascript html javascript-events

我编写了以下代码,在选中复选框时会启用文本框。代码正在处理一个小缺陷。我们第一次执行时,无论选中还是取消选中复选框,都会启用文本框。但经过几次,代码运行正常。请帮我找到错误

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

1 个答案:

答案 0 :(得分: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