Не удается прочитать длину свойства undefined
Я пытаюсь просто проверить, есть ли пустое текстовое поле ввода, но я получаю эту ошибку, когда я запускаю ее в chrome:
Uncaught TypeError: Cannot read property 'length' of undefined.
Вот как я это делаю. Я проверяю готовность 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);
}
Ответы
Ответ 1
Идентификатор ввода не соответствует WallSearch
. Возможно, вы сбиваете с толку, что name
и id
. Это два разных свойства. name
используется для определения имени, по которому опубликовано значение, а id
- это уникальная идентификация элемента внутри DOM.
Другая возможность состоит в том, что у вас есть два элемента с одинаковым идентификатором. Браузер выберет любой из них (возможно, последний, может быть, первый) и вернет элемент, который не поддерживает свойство value
.
Ответ 2
возможно, вы можете сначала определить, действительно ли 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);
}