JavaScript事件处理程序不起作用

时间:2013-12-18 23:56:09

标签: javascript html5 events handlers

这个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>

为什么每当我输入歌曲名称或不输入歌曲名称时,它只会提醒“添加”?我希望它在输入文本时提醒“添加插入歌曲名称”,并在未输入文本时提醒“请输入歌曲名称”。

2 个答案:

答案 0 :(得分:2)

您在if()支票中使用等号,此处:

if(songName=""){

将`songName'设置为空字符串。将代码更改为:

if (songName === "") {

。 。 。这应该做正确的比较。

答案 1 :(得分:0)

您在if语句中使用了赋值运算符=

if(songName="")

您应该使用=====来实际比较这些值。 (参见this了解这些之间的区别)

目前正在进行的是songName=""正在评估,并返回""(已分配的值)。这是一个假值,意味着它被解释为false,因此您的条件语句会落到您的else,但songName现在等于空字符串。