zoukankan      html  css  js  c++  java
  • 创建母版页导致js出现“ 'document.getElementById(...)' 为空或不是对象”错误

      源文件控件元素的ID和生成HTML文件的ID不一致。表单from的name属性和id属性变成了aspnetForm,控件的id属性被无缘无故了加上了ctl00_ContentPlaceHolder1_前缀,其name属性也加上了ctl00ContentPlaceHolder1前缀。

      这下知道了,难怪提示“'document.getElementById(...)' 为空或不是对象”的错误了,原来生成页面后其ID都变了。

      那么我们如何解决它呢?既然他id变了,我们就把JS代码id改为生成后的id。代码如下:

      function insert() {
      document.getElementById("ctl00_ContentPlaceHolder1_txt").value=document.getElementById("ctl00_ContentPlaceHolder1_txt").value+"(__)";
      return;
      }


      好了,问题解决了,不过想想有什么更好的办法呢?到底为什么呢?

      其实分析一下,它是后来生成的客户端id,我们可以用C#语句Control的ClientID属性,像这样写:txt.ClientID; txt还是原来控件的id,后面的ClientID就是新生成的id。txt.ClientID是从程序里取到的后来生成新的id,这样不是更好吗。修改代码如下:

      function insert() {

      document.getElementById('<%=txt.ClientID%>').value=document.getElementById("").value+"(__)";
      return;
      }

  • 相关阅读:
    JAVA类和对象
    JAVA数组
    JAVA流程控制语句
    JAVA运算符
    JAVA数据类型-整数、浮点、字符串、boolean、引用数据类型
    JAVA变量
    JAVA文档注释的三种方式
    @Transactional注解失效的场景总结
    接口幂等性
    事务的四个特性、四种隔离级别和七种传播行为
  • 原文地址:https://www.cnblogs.com/tianliang/p/3077309.html
Copyright © 2011-2022 走看看