我需要根据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>
答案 0 :(得分: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" />
另外,你在第二个if语句中拼错了checked
。您甚至不需要if语句,只需将禁用值设置为与检查值相反的值。
function fncport(controlid, objnameid) {
var control = document.getElementById(controlid);
var objname = document.getElementById(objnameid);
objname.disabled = !control.checked;
}
答案 1 :(得分:0)
不确定您是粘贴代码还是复制代码。但是有一些语法问题:
if (control.cheched == false) {
objname.disabled = true
}
应该是:
if (control.checked == false) {
objname.disabled = true;
}