Javascript 无法读取未定义的属性长度

Javascript 无法读取未定义的属性长度,javascript,dom,dom-events,Javascript,Dom,Dom Events,我试图简单地检查输入文本框是否为空,但在Chrome中运行时出现以下错误: 未捕获的TypeError:无法读取未定义的属性“length” 下面是我如何着手做这件事的。我检查DOM就绪情况,然后调用函数: function walkmydog() { //when the user starts entering

我试图简单地检查输入文本框是否为空,但在Chrome中运行时出现以下错误:

未捕获的TypeError:无法读取未定义的属性“length”

下面是我如何着手做这件事的。我检查DOM就绪情况,然后调用函数:

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或创建演示。