0

假设我有一个由五个问题组成的调查。最后一个按钮,在完成第五个问题后,应该根据他们之前的答案将个人带到许多不同的屏幕之一。但是,尽管我输入了答案,但它仍将我带到同一个屏幕。

这是我的代码的一部分:

onEvent("resultbutton", "click", function(event) {

  if (getText("q1dropdown") == "Female") {

    if (getText("q2dropdown") == "0-12", "13-25", "26-39", "40 and over") {
      if (getText("q3dropdown") == "House") {
        if (getText("q4dropdown") == "Alone") {
          if (getText("q5dropdown") == "Happy", "Energetic") {
            setScreen("HAPPYGIRL");
          }
        }
      }
    }
  }

if (getText("q1dropdown") == "Female") {

    if (getText("q2dropdown") == "0-12", "13-25", "26-39", "40 and over") {
      if (getText("q3dropdown") == "House") {
        if (getText("q4dropdown") == "Alone") {
          if ((getText("q5dropdown") == "Tired"), "Sad") {
            setScreen("TIREDGIRL");

例如,当我输入应该将我引导至“TIREDGIRL”屏幕的答案时,它只会将我带到“HAPPYGIRL”屏幕。

4

1 回答 1

1

假设您正在尝试查看每个下拉响应是否是逗号分隔值中的任何一个,这实际上并没有按照您的想法进行。

例如,为了检查是否getText("q5dropdown")是值"Tired""Sad",您有几个选项:

  1. 使用逻辑OR (||)运算符: if ( getText("q5dropdown") == "Tired" || getText("q5dropdown") == "Sad") )
  2. 检查值数组是否包含答案: if ( ["Tired", "Sad"].includes(getText("g5dropdown")) )

现有代码使用逗号运算符,它将返回最后一个操作数,一个字符串,导致这些条件始终评估为真,而不管选择的答案。

于 2018-03-20T20:46:41.050 回答