0

我需要根据 CheckBox 启用/禁用 asp.TextBox/Input。如果 CheckBox.Checked = true 那么我需要启用 asp.TextBox/Input 或者如果 CheckBox.Checked = false 我需要禁用 asp.TextBox/Input。

下面是我拥有的代码,但它只适用于第一次单击,这意味着如果我选中该框,它将启用 asp.TextBox/Input,但如果我取消选中它将不会禁用 asp.TextBox/Input。

此外,默认情况下,在 Page_Load 上禁用 asp.TextBox/Input。

//If checked it should enable the input.
//If unchecked it should disable the input.
If Port is Required?<label class="checkbox">
                        <input type="checkbox" id="isportreqinput" name="isportreqinput" runat="server" onclick="fncport(this.form.isportreqinput, this.form.porttxt);"  />
                        <span class="metro-checkbox">Check Me</span>
                    </label>

//This is the input I need to disable/enable depending on the checkbox
<input type="text" name="porttxt" id="porttxt" runat="server" disabled="disabled" />

    <script type="text/javascript">
        function fncport(control, objname) {

            if (control.checked == true) {
                objname.disabled = false;
            }
            if (control.cheched == false) {
                objname.disabled = true
            }
        }
    </script>
4

2 回答 2

1

this.form.isportreqinput不是从 HTML 中获取对 isportreqinput 复选框的引用的有效方法。 this实际上是对复选框的引用。

如果您需要传入复选框的 id 并输入到您的函数中,请将它们作为文本传入并使用document.getElementById()

<label class="checkbox">
    <input type="checkbox" id="isportreqinput" name="isportreqinput" runat="server"    
        onclick="fncport('isportreqinput', 'porttxt');"  />
    <span class="metro-checkbox">Check Me</span>
</label>

<input type="text" name="porttxt" id="porttxt" runat="server" disabled="disabled" />

此外,您checked在第二个 if 语句中拼写错误。您甚至不需要 if 语句,只需将禁用的值设置为与检查值相反的值。

    function fncport(controlid, objnameid) {
        var control = document.getElementById(controlid);
        var objname = document.getElementById(objnameid);

        objname.disabled = !control.checked;
    }
于 2013-03-17T21:23:51.463 回答
0

不确定您是粘贴代码还是复制代码。但是有一些语法问题:

 if (control.cheched == false) {
            objname.disabled = true
 }

应该:

 if (control.checked == false) {
            objname.disabled = true;
 }
于 2013-03-17T21:27:41.003 回答