簡體   English   中英

無法讀取未定義的屬性長度

[英]Cannot read property length of undefined

我試圖簡單地檢查我是否有一個空的輸入文本框,但是當我在 Chrome 中運行它時出現此錯誤:

未捕獲的類型錯誤:無法讀取未定義的屬性“長度”。

這是我如何去做的。 我檢查 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 也許你混淆了nameid 它們是兩個不同的屬性。 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);
}

只是想通過另一個簡單的解決方案來解決這個問題。

if(dom?.length !== 0){
// Referred to as optional chaining 
// this checks if the array is empty or if a value exists 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM