1

我在 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;
       }
       }

当我执行上面的脚本时,它会调用函数,但代码不适用于控件。它没有抛出任何异常。

上面的脚本有什么问题?

谢谢。

4

2 回答 2

3

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

于 2011-11-28T13:06:22.417 回答
2

请改用此脚本:

var echk = document.getElementById("<%= chkCall.ClientID %>");
var etxt = document.getElementById("<%= txtCall.ClientID %>");
于 2011-11-28T13:15:45.210 回答