2013-12-18 170 views
0

這個JavaScript:JavaScript事件處理程序不工作

window.onload=init; 

function init(){ 
    var addSongButton = document.getElementById("addButton"); 
    addSongButton.onclick = handleAddSongButtonClick; 
} 

function handleAddSongButtonClick(){ 
    var textInput = document.getElementById("songTextInput"); 
    var songName = textInput.value; 

    if(songName=""){ 
     alert("Please enter a song name"); 
    } 
    else{ 
    alert("Adding " +songName); 
    } 
} 

被鏈接到這個HTML:

<form> 
    <input type="text" id="songTextInput" size="40" placeholder="Song name"> 
    <input type="button" id="addButton" value="Add Song"> 
</form> 

<ul id="playlist"> 

</ul> 

爲什麼每當我輸入歌曲名稱或不進入它只是提醒「一首歌曲的名字添加「?當輸入文字時我要提醒「添加插入歌曲名稱」,並在未輸入文字時提醒「請輸入歌名」。

+0

你能告訴我們在[JSFiddle](http://jsfiddle.net/)嗎? –

+0

對編碼特別是javascript比較新,什麼是jsFiddle? – Justin

+0

JSFiddle是一個工具,所以你可以把你的代碼放在一個工作演示中。它可以幫助我們玩弄代碼並對其進行測試。 –

回答

2

您正在使用您的if()檢查等號,在這裏:

if(songName=""){ 

即設置`SONGNAME」是一個空字符串。將代碼更改爲:

if (songName === "") { 

。 。 。並且應該正確地進行比較。

0

您使用您的if語句賦值運算符,=,:

if(songName="") 

,你應該使用任何=====實際的比較值。 (請參閱this以瞭解它們之間的差異)

當前發生了什麼情況,正在對songName=""進行評估,並返回""(已分配的值)。這是一個虛假的值,這意味着它被解釋爲false,因此您的coniditonal語句正在落入您的else,但0123'現在等於空字符串。