【问题标题】:how to work with javascript function for asp.net checkbox control which is placed in contentplaceholder?如何使用放置在 contentplaceholder 中的 asp.net 复选框控件的 javascript 函数?
【发布时间】:2012-01-07 22:17:51
【问题描述】:

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

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

上面的脚本有什么问题?

谢谢。

【问题讨论】:

    标签: javascript asp.net checkbox contentplaceholder


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      改用这个脚本:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        • 2011-07-04
        相关资源
        最近更新 更多