Javascript提示问题



所以我正在用提示进行用户输入,我已经做了一个if语句,如果提示为空,它将返回带有警告的alertbox。问题是当我在警报上按ok时。它让我直接进入应用程序。这是我的密码。

function getName(){
var username = prompt("Write your username");
if(username == ""){
alert("Please write your username");
}
else{
return username;
}
}

请使用if(!username(。

因为prompt可以返回undefined/null,而不是空字符串。

当我点击"OK";在没有输入任何文本的提示下;请写下您的用户名";,这样代码看起来确实在工作。

值得注意的是,您正在检查一个空字符串,但也应该检查null

当用户单击"确定"按钮时,将返回在输入字段中输入的文本。如果用户在没有输入任何文本的情况下单击"确定",则返回一个空字符串。如果用户单击"取消"按钮,此函数将返回null。

https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt#return_value

您可能还想知道一些旧版本的IE确实返回undefined,尽管我不知道目前有谁支持IE。

请注意,在InternetExplorer7和8中,如果不提供此[默认]参数,则字符串"未定义的";是默认值。https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt#parameters

您可以使用检查一个表达式的真实性

if(!username){
// do stuff...
}

这将检查空字符串、undefined、null、0、false和NaN。

请参阅以下帖子:这意味着什么:如果(变量({/*做某事*/}

最新更新