无法读取 null 的属性“innerHTML”
2012-12-17
18383
我是 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>
错误
Cannot read property 'innerHTML' of null
在询问这里之前,我搜索了很多网站,他们都建议在验证之前检查是否为 null,我可以这样做,但我的问题是,我想向
p
标签添加一些文本,如您所见。如何实现?我甚至尝试追加,认为这可能会解决问题。我知道这是一个愚蠢的错误,因为有很多关于此的帖子……问题是我不明白我哪里做错了。
请帮忙。
3个回答
您
尝试
在 html 尚未
就绪
时访问
元素
,请将语句放在事件函数中以获取函数
palletizedWeightValidation
中的元素。
function palletizedWeightValidation() {
var msgErrorPalletizedWeight = document.getElementById('msgError');
console.log("hello");
/*ERROR*/ msgErrorPalletizedWeight.innerHTML += ("Please enter all the values marked ith *");
}
编辑 要停止回发 ,您需要从 javascrip 函数返回 false。
<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.
}
Adil
2012-12-17
重要的是您的 js 文件何时执行。 如果您在 head 标签内加载 js 文件,则您的文件将在创建 DOM 之前执行。这意味着 document.getElementById 函数返回 null。
Luka
2012-12-17
您收到的错误是由于您尝试读取 NULL 对象的属性而导致的。这意味着您的行:
var msgErrorPalletizedWeight = document.getElementById('msgError');
未在您的页面上找到任何元素。
Justin McDonald
2012-12-17