Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在复选框更改时禁用文本框_Javascript_Asp.net_Html - Fatal编程技术网

Javascript 在复选框更改时禁用文本框

Javascript 在复选框更改时禁用文本框,javascript,asp.net,html,Javascript,Asp.net,Html,我有一个复选框,选中时会禁用两个文本框。取消选中时,将启用复选框。下面是JavaScript: function enableField() { prePracticeCodeTextBox = document.getElementById('prePracticeCodeTextBox'); preContactTextBox = document.getElementById('preContactTextBox'); checkTheBox = document.

我有一个复选框,选中时会禁用两个文本框。取消选中时,将启用复选框。下面是JavaScript:

function enableField() {
    prePracticeCodeTextBox = document.getElementById('prePracticeCodeTextBox');
    preContactTextBox = document.getElementById('preContactTextBox');
    checkTheBox = document.getElementById('CheckBox1');
    if (checkTheBox.checked == true) {
        prePracticeCodeTextBox.disabled = false;
        preContactTextBox.disabled = false;

    }
    else {
        prePracticeCodeTextBox.disabled = true;
        preContactTextBox.disabled = true;
    }
}
以下是HTML:

<dl>
    <dt><label for="CheckBox1">PreAnalytical?</label></dt>
    <dd> <asp:CheckBox ID="CheckBox1" runat="server" CausesValidation="false"
                            Visible="true" OnCheckChanged="enableField()"/></dd>
</dl>
<dl>
    <dt><label for="prePracticeCodeTextBox">Practice Code:</label></dt>
    <dd><asp:TextBox ID="prePracticeCodeTextBox" runat="server" Enabled="False" /></dd>
</dl>
<dl>
    <dt><label for="preContactTextBox">Contact:</label></dt>
    <dd><asp:TextBox ID="preContactTextBox" runat="server" Enabled="False" /></dd>
</dl>

分析前?
业务守则:
联系人:
根本没有调用JavaScript函数


我做错了什么?

OnCheckChanged=“enableField()
更改为
onclick=“enableField();“
。您正在使用服务器控件。OnCheckChanged是asp.net复选框控件的事件。

OnCheckChanged=“enableField()
更改为
onclick=“enableField();”
。您正在使用服务器控件。OnCheckChanged是asp.net复选框控件的事件。

尝试改用onclick。使用以下代码将其注册到您的代码隐藏中:

CheckBox1.Attributes.Add("onclick", "enableField();");
顺便说一句,使用默认设置,您将无法访问asp.net web窗体应用程序中的元素。您需要获取将呈现的元素的clientId:

function enableField() {
    prePracticeCodeTextBox = document.getElementById('<%=prePracticeCodeTextBox.ClientID%>');
    preContactTextBox = document.getElementById('<%=preContactTextBox.ClientID%>');
    checkTheBox = document.getElementById('<%=CheckBox1.ClientID%>');
    if (checkTheBox.checked == true) {
        prePracticeCodeTextBox.disabled = false;
        preContactTextBox.disabled = false;

    }
    else {
        prePracticeCodeTextBox.disabled = true;
        preContactTextBox.disabled = true;
    }


}
函数启用字段(){
prePracticeCodeTextBox=document.getElementById(“”);
preContactTextBox=document.getElementById(“”);
选中框=document.getElementById(“”);
if(checkTheBox.checked==true){
prePracticeCodeTextBox.disabled=false;
preContactTextBox.disabled=假;
}
否则{
prePracticeCodeTextBox.disabled=true;
preContactTextBox.disabled=真;
}
}
如果您正在.net 4上开发,请阅读以下文章:


尝试使用onclick代替。使用以下代码将其注册到您的代码隐藏中:

CheckBox1.Attributes.Add("onclick", "enableField();");
顺便说一句,使用默认设置,您将无法访问asp.net web窗体应用程序中的元素。您需要获取将呈现的元素的clientId:

function enableField() {
    prePracticeCodeTextBox = document.getElementById('<%=prePracticeCodeTextBox.ClientID%>');
    preContactTextBox = document.getElementById('<%=preContactTextBox.ClientID%>');
    checkTheBox = document.getElementById('<%=CheckBox1.ClientID%>');
    if (checkTheBox.checked == true) {
        prePracticeCodeTextBox.disabled = false;
        preContactTextBox.disabled = false;

    }
    else {
        prePracticeCodeTextBox.disabled = true;
        preContactTextBox.disabled = true;
    }


}
函数启用字段(){
prePracticeCodeTextBox=document.getElementById(“”);
preContactTextBox=document.getElementById(“”);
选中框=document.getElementById(“”);
if(checkTheBox.checked==true){
prePracticeCodeTextBox.disabled=false;
preContactTextBox.disabled=假;
}
否则{
prePracticeCodeTextBox.disabled=true;
preContactTextBox.disabled=真;
}
}
如果您正在.net 4上开发,请阅读以下文章:

功能启用字段(){

prePracticeCodeTextBox=.getElementById(“”);
preContactTextBox=document.getElementById(“”);
选中框=document.getElementById(“”);
if(checkTheBox.checked==true){
prePracticeCodeTextBox.disabled=false;
preContactTextBox.disabled=假;
}
否则{
prePracticeCodeTextBox.disabled=true;
preContactTextBox.disabled=真;
}
}功能启用字段(){

prePracticeCodeTextBox=.getElementById(“”);
preContactTextBox=document.getElementById(“”);
选中框=document.getElementById(“”);
if(checkTheBox.checked==true){
prePracticeCodeTextBox.disabled=false;
preContactTextBox.disabled=假;
}
否则{
prePracticeCodeTextBox.disabled=true;
preContactTextBox.disabled=真;
}

}

然后,这意味着您的应用程序已配置为生成干净的ID。但要记住这一点。如果您将代码放在ContentPlaceHolder中(使用母版页时),元素的ID肯定会更改。然后,这意味着您的应用程序被配置为生成干净的ID。但要记住这一点。如果将代码放在ContentPlaceHolder中(使用母版页时),元素的ID肯定会更改。