Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果用户;取消";提示框_Javascript - Fatal编程技术网

Javascript 如果用户;取消";提示框

Javascript 如果用户;取消";提示框,javascript,Javascript,我尝试过添加Do/While循环,然后尝试了If语句,但似乎无法实现 我试图确定用户是否没有进行三次猜测,并在userGuess提示符上点击cancel。。然后它会返回一个警报(“你是一只鸡”) //声明变量 var sportsArray=新阵列(“足球”、“篮球”、“旱冰车”、“徒步旅行”、“自行车”、“游泳”); var name=“”; var得分=0; var循环=0; //提示输入用户名,检查输入。 做{ name=prompt(“输入您的名字”); } 而(名称==”); 对于(l

我尝试过添加Do/While循环,然后尝试了If语句,但似乎无法实现

我试图确定用户是否没有进行三次猜测,并在userGuess提示符上点击cancel。。然后它会返回一个警报(“你是一只鸡”)

//声明变量
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评论说他很高兴。