启用/禁用基于CheckBox的asp:TextBox控件.检查为真或假

Enable/Disable an asp:TextBox Control based on CheckBox.Checked true or false

本文关键字:检查 控件 TextBox asp CheckBox 启用      更新时间:2023-09-26

我需要启用/禁用asp。文本框/输入取决于复选框。如果复选框。Checked = true,然后我需要启用asp。文本框/输入或如果复选框。Checked = false然后我需要禁用asp.TextBox/Input。

下面是我的代码,但它只适用于第一次点击,这意味着如果我选中框,它将启用asp。文本框/输入,但如果我取消勾选,它不会禁用asp.TextBox/输入。

另外,默认情况下asp。文本框/输入是禁用Page_Load。

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

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" />

另外,您在第二个if语句中拼错了checked。您甚至不需要任何if语句,只需将禁用值设置为与选中值相反的值。

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

不确定您是否粘贴或复制了代码。但是这里有一些语法问题:

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

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