如果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>
答案 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>