无法读取null的属性'innerHTML'

时间:2012-12-17 06:50:52

标签: javascript asp.net html

我是javascript初学者。

js文件

         var msgErrorPalletizedWeight = document.getElementById('msgError');
         function palletizedWeightValidation() {
              console.log("hello");
/*ERROR*/     msgErrorPalletizedWeight.innerHTML += ("Please enter all the values marked with *");
         }

HTML

<head runat="server">
   <title></title>
   <link href="Styles/Site.css" rel="stylesheet" type="text/css" />
   <script src="Scripts/file.js" type="text/javascript"></script>
</head>
<body>
    <p id="msgError"></p>
    <asp:Button ID="btnSubmitPalletized" runat="server" Text="Submit" 
                   OnClientClick="palletizedWeightValidation()" />
</body>

ERROR

  

无法读取null

的属性'innerHTML'

我在这里询问之前搜索了很多网站,他们都建议在验证之前检查null,我可以做但我的问题是我想在p标签中添加一些文字,你可以看到..如何实现那个?我甚至尝试追加,认为它可以解决问题。我知道这是一个愚蠢的错误,因为有很多帖子......问题是我无法理解我哪里出错了。

请帮忙。

3 个答案:

答案 0 :(得分:4)

trying不是element时,你ready访问h palletizedWeightValidation,将语句放在事件函数中以获取函数 function palletizedWeightValidation() { var msgErrorPalletizedWeight = document.getElementById('msgError'); console.log("hello"); /*ERROR*/ msgErrorPalletizedWeight.innerHTML += ("Please enter all the values marked ith *"); } 中的元素。

 <asp:Button ID="btnSubmitPalletized" runat="server" Text="Submit" 
                   OnClientClick="return palletizedWeightValidation()" />


      function palletizedWeightValidation() {
              var msgErrorPalletizedWeight = document.getElementById('msgError');
              console.log("hello");
/*ERROR*/     msgErrorPalletizedWeight.innerHTML += ("Please enter all the values marked ith *");
              return false; // returning true will cause postback.
         }

编辑 要停止回发,您需要从javascrip函数返回false。

{{1}}

答案 1 :(得分:1)

重要的是你的js文件被执行了。 如果在头标记内加载js文件,则在创建DOM之前将执行您的文件。这意味着,document.getElementById函数返回null。

答案 2 :(得分:0)

您获得的错误是由于您尝试读取NULL对象的属性而导致的。这意味着您的行:

var msgErrorPalletizedWeight = document.getElementById('msgError');

未在您的网页上找到任何元素。