我在contentplaceholder上有来自asp.net的复选框和文本框控件。我想调用javascript函数来启用文本框控件,具体取决于复选框的选中状态。我为此写了以下javascript -
将checkbox & textbox
呈现给浏览器ctl00$ContentPlaceHolder1$chkCall, ctl00$ContentPlaceHolder1$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;
}
}
当我执行上面的脚本然后它调用函数但代码不适用于控件。并没有任何例外。
以上脚本有什么问题?
感谢。
答案 0 :(得分:3)
getElementsByName
返回一个元素数组(复数)尝试使用getElementById
来获取单个元素,这可能是你想要的,因为你正在检查echk.Checked
==是否正确。在你的情况下,echk是一个数组,而不是一个复选框。
答案 1 :(得分:2)
请改用此脚本:
var echk = document.getElementById("<%= chkCall.ClientID %>");
var etxt = document.getElementById("<%= txtCall.ClientID %>");