2017-07-29 11 views
2

例外TypeError:name.addEventListener私はキャッシュをクリアしようとした機能

<input id="name" type="number" placeholder="Name"> 
 

 
<script> 
 
    var name = document.getElementById("name"); 
 
    name.addEventListener('focus',function() { 
 
     alert("Type your name"); 
 
    }); 
 

 
</script>

ではありませんが、ブラウザを変更し、何も助けません。 jsfiddleでは、コードはうまく機能しますが、ブラウザはありません。

+0

あなたのjsコードがあなたのhtmlより前に実行されているかもしれません – tinamou

+0

@アンドレアスはうまくいっていますか? –

+0

@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ実際には "name"とは異なり、window.onloadを使わなくても動作しています –

答えて

0

変数名nameanameに変更しました。通常、Javascriptのキーワードや事前定義された変数と衝突する可能性のある変数名を使用しないことをお勧めします。 window.nameはそのようなケースです

1

問題は、あなたのスクリプトがhtmlの終了レンダリングの前に実行されているということです。 onloadコールバックにコードを追加すると、htmlが読み込まれるようになります。

<input id="name" type="number" placeholder="Name"> 
 

 
<script> 
 
    window.onload = function(){ 
 
    var name = document.getElementById("name"); 
 
    name.addEventListener('blur',function() { 
 
     alert("Type your name"); 
 
    }); 
 
    } 
 
</script>

:アラートのシリーズから自分自身を救うために焦点にぼかしイベントを変更しました。

+0

@jack_snipeこれは、変数 'name'が関数のスコープ内で定義されているため、ウィンドウ.name'。私の答えは以下のように考えてください。 –

関連する問題