使用javascript的非常基本的程序出错

时间:2016-03-06 12:00:13

标签: javascript

如果person不是null,则输出第一个条件,否则显示警告框。但如果输入null,它就不会执行第二个条件 - 它会继续第一个条件。

<!DOCTYPE html>
<html>
<body>

<p>Click the button to demonstrate the prompt box.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var person = prompt("Please enter your name");

    if (person != null) {
        document.getElementById("demo").innerHTML =
        "Hello " + person + "! How are you today?";
    }
    else if (person == null ){
            alert("How dare you ?>");
    }
}
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

问题很可能是你认为自己没有真正输入null。

null很特别:它是一个特殊值,表示没有值。不要与"null"混淆,包含单词“null”或“”的字符串,空字符串。

prompt()仅在取消时返回null。当您“输入null”时,您可能会以“null”或“”结束,具体取决于您是否在框中键入任何内容。

请参阅:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/null

所以你的固定代码是:

<!DOCTYPE html>
<html>
<body>

<p>Click the button to demonstrate the prompt box.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var person = prompt("Please enter your name");

    if (person != "") {
        document.getElementById("demo").innerHTML =
        "Hello " + person + "! How are you today?";
    } else {
        alert("How dare you ?>");
    }
}
</script>

</body>
</html>

答案 1 :(得分:-1)

当按钮分配事件处理程序时,

myFunction()没有定义,因此将脚本放在head标记中。并且为了检查字符串值需要放置“”而不是null

我修改了你的代码尝试它会起作用...它对我来说很好。

<!DOCTYPE html>
    <html>
    <head>
         <script>
    function myFunction() {
        var person = prompt("Please enter your name");

        if (person != "") {
            document.getElementById("demo").innerHTML =
            "Hello " + person + "! How are you today?";
    }
        else {
                alert("How dare you ?>");
    }
    }
    </script>
    </head>
    <body>

    <p>Click the button to demonstrate the prompt box.</p>

    <button onclick="myFunction()">Try it</button>

    <p id="demo"></p>

    </body>
    </html>