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

  • 相关阅读:
    Mayi_Maven安装与配置Myeclipse、Idea
    MY_Selenium登录126邮箱,定位不到账号输入框解决办法
    MY_使用selenium自动登录126/163邮箱并发送邮件
    2、TestNG+Maven+IDEA环境搭建
    1、Maven安装教程详解
    git常用命令
    LUA_linux的安装
    vsftp虚拟用户配置
    apache日志切割
    NTP Reply Flood Attack (NTP反射型DDos攻击)
  • 原文地址:https://www.cnblogs.com/tianliang/p/3077309.html
Copyright © 2011-2022 走看看