JavaScript Prompt()输入

时间:2017-08-15 19:46:35

标签: javascript alert

以下代码仅在用户点击提示时单击取消时才会运行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!');
}

3 个答案:

答案 0 :(得分:1)

Return value from prompt

  

的字符串。如果用户单击“确定”,则返回输入值。如果用户单击“取消”,则返回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!');
}