Javascript 如果用户;取消";提示框
我尝试过添加Do/While循环,然后尝试了If语句,但似乎无法实现 我试图确定用户是否没有进行三次猜测,并在userGuess提示符上点击cancel。。然后它会返回一个警报(“你是一只鸡”)Javascript 如果用户;取消";提示框,javascript,Javascript,我尝试过添加Do/While循环,然后尝试了If语句,但似乎无法实现 我试图确定用户是否没有进行三次猜测,并在userGuess提示符上点击cancel。。然后它会返回一个警报(“你是一只鸡”) //声明变量 var sportsArray=新阵列(“足球”、“篮球”、“旱冰车”、“徒步旅行”、“自行车”、“游泳”); var name=“”; var得分=0; var循环=0; //提示输入用户名,检查输入。 做{ name=prompt(“输入您的名字”); } 而(名称==”); 对于(l
//声明变量
var sportsArray=新阵列(“足球”、“篮球”、“旱冰车”、“徒步旅行”、“自行车”、“游泳”);
var name=“”;
var得分=0;
var循环=0;
//提示输入用户名,检查输入。
做{
name=prompt(“输入您的名字”);
}
而(名称==”);
对于(loops=1;loops提示在单击取消时返回一个null
值,因此substring()
方法失败并出现错误(Uncaught TypeError:无法读取null的属性'substr'
您需要在调用提示符后立即检查它,然后像这样继续
var sGuess = prompt("Enter a sport guess", "");
if (sGuess == "") {
alert("You are a chicken");
continue;
}
提示在单击取消时返回一个null
值,因此substring()
方法失败并出现错误(uncaughttypeerror:无法读取null的属性'substr'
您需要在调用提示符后立即检查它,然后像这样继续
var sGuess = prompt("Enter a sport guess", "");
if (sGuess == "") {
alert("You are a chicken");
continue;
}
更新sGuess
检查来源:
if (sGuess == "") {
alert("You are a chicken");
}
下一个:
if (sGuess == null) {
alert("You are a chicken");
}
如果用户单击取消sGuess将等于null
,则要验证第三次用户尝试是否已结束,请按取消添加检查循环
计数器值(sGuess==null&&loops==3)
更新sGuess
检查来源:
if (sGuess == "") {
alert("You are a chicken");
}
下一个:
if (sGuess == null) {
alert("You are a chicken");
}
如果用户单击“取消”,则sGuess将等于null
,要验证第三次用户尝试是否已通过按“取消”结束,请按“添加检查loops
计数器值(sGuess==null&&loops==3)
,只需检查结果以查看是否提供了值:
name = prompt("Enter your first name", "");
// If no name value was received:
if(!name){
alert("Chicken!");
}
只需检查结果,查看是否提供了值:
name = prompt("Enter your first name", "");
// If no name value was received:
if(!name){
alert("Chicken!");
}
如果用户点击cancel,“prompt”将返回null。在这种情况下,所有substr和后续代码都将失败
var sGuess = prompt("Enter a sport guess", "");
if(sGuess !== null) {
// uses substrings to ultimately capitalize the 1st letter, and make everything after it lowerCase.
var sFirstPart = sGuess.substr(0, 1);
var sFirstCap = sFirstPart.toUpperCase();
var sSecondPart = sGuess.substring(1, sGuess.length);
var sSecondLow = sSecondPart.toLowerCase();
// concats the two parts into one string
var usableGuess = sFirstCap + sSecondLow;
} else {
// if user hits cancel on the sGuess prompt
alert("You are a chicken");
}
...
如果用户点击cancel,“prompt”将返回null。在这种情况下,所有substr和后续代码都将失败
var sGuess = prompt("Enter a sport guess", "");
if(sGuess !== null) {
// uses substrings to ultimately capitalize the 1st letter, and make everything after it lowerCase.
var sFirstPart = sGuess.substr(0, 1);
var sFirstCap = sFirstPart.toUpperCase();
var sSecondPart = sGuess.substring(1, sGuess.length);
var sSecondLow = sSecondPart.toLowerCase();
// concats the two parts into one string
var usableGuess = sFirstCap + sSecondLow;
} else {
// if user hits cancel on the sGuess prompt
alert("You are a chicken");
}
...
我最后做了以下几点,在这个特殊的案例中,它起到了作用
// if user hits cancel on the sGuess prompt
if (!sGuess && loops < 4) {
alert("You are a chicken");
}
//如果用户在sGuess提示符下单击“取消”
如果(!sGuess&&loops<4){
警惕(“你是一只鸡”);
}
我最后做了以下几点,它完成了任务,在这个特殊的例子中
// if user hits cancel on the sGuess prompt
if (!sGuess && loops < 4) {
alert("You are a chicken");
}
//如果用户在sGuess提示符下单击“取消”
如果(!sGuess&&loops<4){
警惕(“你是一只鸡”);
}
继续;
不需要,因为后面没有代码。这个不触发警报。继续;
不需要,因为后面没有代码。这个不触发警报。这个不触发警报。这个不触发警报。当我应用这个时,它似乎工作正常,当输入ompt为空,点击cancel。没错。因为如果用户将提示留空,则返回null
(这是一个'falsy'值,需要将其视为布尔值时会转换为false),当用户键入nothing并点击OK时,返回一个空字符串(也是falsy)。因此,这两个操作都意味着用户没有键入任何内容。非常感谢Scott,他是Javascript新手。我仍在努力掌握在不同情况下使用何种类型的循环,以及在出现“null”时该怎么做或者返回空字符串。非常感谢。欢迎@NateE。别忘了向上投票!祝你好运!向下投票?为什么?正确的解释,OP评论说他很高兴。当我应用此选项时,它似乎工作正常,输入提示留空并点击取消。没错。因为如果用户将提示留空,null(这是一个'falsy'值-当需要将其视为布尔值时,它将转换为false),当用户键入nothing并点击OK时,将返回一个空字符串(也是falsy)。因此,这两个操作都意味着用户没有键入任何内容。非常感谢Scott,他是Javascript新手。我仍在努力掌握在不同情况下使用何种类型的循环,以及在出现“null”时该怎么做或者返回空字符串。非常感谢。欢迎@NateE。别忘了向上投票!祝你好运!向下投票?为什么?正确的解释和OP评论说他很高兴。