Javascript 无法读取未定义的属性长度
我试图简单地检查输入文本框是否为空,但在Chrome中运行时出现以下错误: 未捕获的TypeError:无法读取未定义的属性“length” 下面是我如何着手做这件事的。我检查DOM就绪情况,然后调用函数:Javascript 无法读取未定义的属性长度,javascript,dom,dom-events,Javascript,Dom,Dom Events,我试图简单地检查输入文本框是否为空,但在Chrome中运行时出现以下错误: 未捕获的TypeError:无法读取未定义的属性“length” 下面是我如何着手做这件事的。我检查DOM就绪情况,然后调用函数: function walkmydog() { //when the user starts entering
function walkmydog() {
//when the user starts entering
if(document.getElementById('WallSearch').value.length == 0) {
alert("nothing");
}
}
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", walkmydog, false);
}
输入的id似乎不是
WallSearch
。也许你混淆了名称
和id
。它们是两种不同的属性name
用于定义值的发布名称,而id
是DOM中元素的唯一标识
另一种可能是您有两个id相同的元素。浏览器将选择其中任何一个(可能是最后一个,也可能是第一个),并返回一个不支持
value
属性的元素。也许,您可以先确定DOM是否确实存在
function walkmydog() {
//when the user starts entering
var dom = document.getElementById('WallSearch');
if(dom == null){
alert('sorry, WallSearch DOM cannot be found');
return false;
}
if(dom.value.length == 0){
alert("nothing");
}
}
if (document.addEventListener){
document.addEventListener("DOMContentLoaded", walkmydog, false);
}
请附上HTML的相关部分好吗?您确定
WallSearch
是input
元素的ID吗?如果是的话,您不会得到那个错误:如何检查DOM就绪性?我已经添加了用于检查DOM就绪性的代码,并且我确信id是“WallSearch”。正在调用该函数,但它出错。该错误意味着getElementById('WallSearch')
返回的元素没有值
属性。每个表单字段都有一个值
属性,因此它似乎没有返回正确的元素。请发布您的HTML或创建演示。