如何使用放置在contentplaceholder中的asp.net复选框控件的javascript函数?

如何使用放置在contentplaceholder中的asp.net复选框控件的javascript函数?,javascript,asp.net,checkbox,contentplaceholder,Javascript,Asp.net,Checkbox,Contentplaceholder,我在contentplaceholder上有来自asp.net的复选框和文本框控件。我想根据复选框的选中状态调用javascript函数来启用textbox控件。我已经为此编写了以下javascript- 将复选框和文本框呈现到浏览器后,分别显示其名称ctl00$contentplaceholder 1$chkCall、ctl00$contentplaceholder 1$txtCall function chkChanged() { try { v

我在contentplaceholder上有来自asp.net的复选框和文本框控件。我想根据复选框的选中状态调用javascript函数来启用textbox控件。我已经为此编写了以下javascript-

将复选框和文本框呈现到浏览器后,分别显示其名称
ctl00$contentplaceholder 1$chkCall、ctl00$contentplaceholder 1$txtCall

function chkChanged() {
           try {

           var echk = document.getElementsByName('ctl00$ContentPlaceHolder1$chkCall');
           var etxt = document.getElementsByName('ctl00$ContentPlaceHolder1$txtCall');

           if (echk.Checked) {

               etxt.Enabled = true;
           }
           else {
               etxt.Enabled = false;
               etxt.Text = "";
           }
           return true;
           }
       catch (err) {
           alert(err.Message);
           return false;
       }
       }
当我执行上面的脚本时,它调用函数,但代码不适用于控件。它没有抛出任何异常

上面的脚本有什么错误


谢谢。

getElementsByName
返回一个元素数组(复数)尝试使用
getElementById
获取单个元素,这可能是您想要的,因为您正在检查
echk.Checked
==true。在您的例子中,echk是一个数组,而不是一个复选框。

getElementsByName
返回一个元素数组(复数)。请尝试使用
getElementById
获取单个元素,这可能是您想要的,因为您正在检查
echk.Checked
==true。在您的情况下,echk是一个数组,而不是一个复选框。

请使用以下脚本:

var echk = document.getElementById("<%= chkCall.ClientID %>");
var etxt = document.getElementById("<%= txtCall.ClientID %>");
var-echk=document.getElementById(“”);
var etxt=document.getElementById(“”);

请改用此脚本:

var echk = document.getElementById("<%= chkCall.ClientID %>");
var etxt = document.getElementById("<%= txtCall.ClientID %>");
var-echk=document.getElementById(“”);
var etxt=document.getElementById(“”);