以下代码仅在用户点击提示时单击取消时才会运行alert('Please enter your name!');
。如果用户未在提示框中输入任何内容并点击 Enter ,我正在尝试使代码也运行所述警报。但是,当他们没有输入任何内容并单击输入时,代码会呈现" Hello"。我该怎么做?
var theName = prompt('What is your name?');
if(theName != null) {
document.write('Hello, ' + theName);
}
else{
alert('Please enter your name!');
}
答案 0 :(得分:1)
的字符串。如果用户单击“确定”,则返回输入值。如果用户单击“取消”,则返回null。如果用户单击“确定”而未输入任何文本,则返回空字符串。
答案 1 :(得分:1)
当用户单击enter而不输入任何字符串时,结果将为“empty-string”,因此为“”。 你只是检查null。空字符串不为空。所以代码按预期工作。 你应该检查null或“”。 一个捷径就是滥用javascript并检查
if (theName) { ...} else { ... }
根本没有检查null,因为null和empty-string在javascript中都是假的。
答案 2 :(得分:1)
正如@JohnnyMopp和Idos所说,如果用户点击 Enter 而不输入任何内容,您将获得一个空字符串。您可以通过在if
语句中添加其他条件来检查:
var theName = prompt('What is your name?');
if(theName != null && theName != "") {
document.write('Hello, ' + theName);
}
else{
alert('Please enter your name!');
}