如何使用放置在contentplaceholder中的asp.net复选框控件的javascript函数?
我在contentplaceholder上有来自asp.net的复选框和文本框控件。我想根据复选框的选中状态调用javascript函数来启用textbox控件。我已经为此编写了以下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
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(“”);