在ASP.Net中使用Javascript显示隐藏文本框

时间:2013-06-13 11:20:50

标签: c# javascript asp.net

此代码在ASP.Net中不起作用并给出错误

Microsoft JScript运行时错误:'select'为null或不是对象

我的代码是

var select = document.getElementsByTagName("Dd_Select_Month_Year")[0];
       select.onchange = function () {
           if (select.value == "2") {
               document.getElementsByTagName("txtDateFrom")[1].style.display = "inline";
               document.getElementsByTagName("txtDateTo")[1].style.display = "inline";
           } else {
               document.getElementsByTagName("txtDateFrom")[1].style.display = "none";
               document.getElementsByTagName("txtDateTO")[1].style.display = "none";
           }

       }

2 个答案:

答案 0 :(得分:2)

标记名称是HTML元素的标记名称。对于<select>元素,标记名称为“select”。由于没有带有标记“Dd_Select_Month_Year”的元素,因此getElementsByTagName()返回null。

使用

document.getElementsByTagName("select")[0];

或者,如果“Dd_Select_Month_Year”是您select的名称属性的值,即

<select name="Dd_Select_Month_Year">...</select>

使用:

document.getElementsByName("Dd_Select_Month_Year")[0];

答案 1 :(得分:1)

应避免使用

select作为变量名。

参考:

  1. http://www.quackit.com/javascript/javascript_reserved_words.cfm
  2. http://www.javascripter.net/faq/reserved.htm
  3. 尝试使用其他单词作为变量名称

    var select2 = document.getElementsByTagName("Dd_Select_Month_Year")[0];
    select2.onchange = function () {
        //Do whatever
    }