空の入力テキストボックスがあるかどうかを単純に確認しようとしていますが、これを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);
}
入力のIDはWallSearch
ではないようです。 name
とid
を混同しているのかもしれません。これらは2つの異なるプロパティです。 name
は値の投稿に使用される名前を定義するために使用され、id
はDOM内の要素の一意のIDです。
他の可能性は、同じIDを持つ2つの要素があることです。ブラウザはこれらのいずれか(おそらく最後、おそらく最初)を選択し、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);
}