2017-07-29 129 views
2

類型錯誤: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

@Andreas但是它工作嗎? –

+0

@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ其實是的,與「名稱」名稱不同,即使沒有window.onload –

回答

0

我已經將變量名稱name更改爲aname,它工作。通常建議不要使用可能與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'在函數範圍內定義,因此它不會與' window.name'。請在下面考慮我的答案。 –

相關問題