J'essaie simplement de vérifier si j'ai une zone de texte d'entrée vide mais j'obtiens cette erreur lorsque je l'exécute dans Chrome:
Uncaught TypeError: Cannot read property 'length' of undefined.
Voici comment je le fais. Je vérifie l'état de préparation du DOM, puis j'appelle la fonction.
function walkmydog() {
//when the user starts entering
if(document.getElementById('WallSearch').value.length == 0) {
alert("nothing");
}
}
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", walkmydog, false);
}
L'identifiant de l'entrée semble ne pas être WallSearch
. Vous confondez peut-être que name
et id
. Ce sont deux propriétés différentes. name
est utilisé pour définir le nom par lequel la valeur est publiée, tandis que id
est l'identification unique de l'élément à l'intérieur du DOM.
Une autre possibilité est que vous ayez deux éléments avec le même identifiant. Le navigateur choisira l'un d'entre eux (probablement le dernier, peut-être le premier) et retournera un élément qui ne prend pas en charge la propriété value
.
peut-être, vous pouvez d'abord déterminer si le DOM existe vraiment,
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);
}