Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 有没有办法让我检查一下“基于答案进入页面”是否在谷歌表单中被选中_Google Apps Script_Google Forms - Fatal编程技术网

Google apps script 有没有办法让我检查一下“基于答案进入页面”是否在谷歌表单中被选中

Google apps script 有没有办法让我检查一下“基于答案进入页面”是否在谷歌表单中被选中,google-apps-script,google-forms,Google Apps Script,Google Forms,使用.setChoices时,它会查找已创建选项的数组。如果是多项选择题,则可以将其格式化为createChoicevalue或createChoicevalue、navigationType 当查看一个选项时,您会输入如下内容:var cPage=chkItem.getChoices[j].getGotoPage; 这将生成页面对象或空值 问题是,当一个问题被设置为基于答案转到页面时,他们没有为每个条目设置页面,并保留默认值以继续,在我的案例cPage中,它也将其读取为null。这意味着如果我

使用.setChoices时,它会查找已创建选项的数组。如果是多项选择题,则可以将其格式化为createChoicevalue或createChoicevalue、navigationType

当查看一个选项时,您会输入如下内容:var cPage=chkItem.getChoices[j].getGotoPage; 这将生成页面对象或空值

问题是,当一个问题被设置为基于答案转到页面时,他们没有为每个条目设置页面,并保留默认值以继续,在我的案例cPage中,它也将其读取为null。这意味着如果我想通过每一个选择来捕获它,修改它,然后将它推回问题,那么我推出的结束数组由Null和Objects组成,这会产生一个错误

对于没有页面的问题,我的解决方法是脚本强制更改问题以处理页面导航,但将所有人设置为继续


我想找到一种方法来检查问题是否已转到基于已检查答案的页面,如果没有,则可以仅使用该值创建选项。

算出:我需要检查第一个选项是否具有PageNavigationType。如果是,则选中该框。如果为null,则不检查它。我还没有编写代码来完全测试这一点,但理论应该是可行的。我只检查了goToPage类型,这就是为什么它以前不工作的原因

    var choicecount = chkItem.getChoices().length-1;
  var hasNavType = chkItem.getChoices()[0].getPageNavigationType();  //if null

  for (var j = 0; j <= choicecount; ++j) {
    var cValue = chkItem.getChoices()[j].getValue();
    var cPage = chkItem.getChoices()[j].getGotoPage();
    var cNav = chkItem.getChoices()[j].getPageNavigationType();
    //        Logger.log(j+" "+cPage);
    if (cValue != reValues[0]){ 

      if (hasNavType == null){
        newChoices.push(chkItem.createChoice(cValue));  
      } else {

      if (cPage == null){
        newChoices.push(chkItem.createChoice(cValue,cNav));
      } else {
        newChoices.push(chkItem.createChoice(cValue,cPage)); 
      }

      }
    } 
  }
如果表单有onEdit或onChange触发器,您可以在每次用户选择后检查状态,但表单唯一的触发器是OPEN、TIME-DRIVEN和SUBMIT。您可以添加自定义菜单,该菜单可以随时运行脚本,但这取决于用户的选择。你的问题似乎和这个一样: