Google apps script 从应用程序脚本提交时,谷歌表单多项选择其他选项不可见

Google apps script 从应用程序脚本提交时,谷歌表单多项选择其他选项不可见,google-apps-script,google-forms,google-apps-script-api,Google Apps Script,Google Forms,Google Apps Script Api,我有一个谷歌表格,里面有一个选择题“领域领域”。此字段有两个有效答案 美国和 其他(当您选择其他选项时,您可以在文本区域中写下任何国家的名称) 现在我正在尝试使用谷歌应用程序脚本提交此表单。在从应用程序脚本提交时,如果我将这个选择题的答案作为“美国”发送,它将起作用。我想在提交表格时发送其他人作为此问题的答案。有人能帮我吗。我包括以下字段和脚本的图片供参考 我正在尝试使用谷歌脚本(下面提到的部分脚本)提交此表单。 var formID = "xxxxxxxxxxxxxxxxxxx

我有一个谷歌表格,里面有一个选择题“领域领域”。此字段有两个有效答案

  • 美国和
  • 其他(当您选择其他选项时,您可以在文本区域中写下任何国家的名称) 现在我正在尝试使用谷歌应用程序脚本提交此表单。在从应用程序脚本提交时,如果我将这个选择题的答案作为“美国”发送,它将起作用。我想在提交表格时发送其他人作为此问题的答案。有人能帮我吗。我包括以下字段和脚本的图片供参考
  • 我正在尝试使用谷歌脚本(下面提到的部分脚本)提交此表单。

      var formID = "xxxxxxxxxxxxxxxxxxxxxx";
      var Formobj= FormApp.openById(formID);
      var formResponse = Formobj.createResponse();
      var items = Formobj.getItems();
      var territory =  items[1]
      var territoryvalue = "United States"
      
      if (territoryvalue.indexOf("United States") !== -1)
      {
      var territoryfield = territory.asMultipleChoiceItem()
      var territoryresponse = territoryfield .createResponse([["United States"]])
      formResponse.withItemResponse(territoryresponse);
      }
    

    需要帮助以“其他人”作为答案提交此表格

    文档内容如下:

    为此多选项创建一个新项目。如果响应参数与此项的有效选项不匹配,则引发异常,除非设置为true

    因此,要提交“其他”响应,只需将值传递给它

    var territoryresponse = territoryfield.createResponse([["Other Country"]])
    
    如果您想在表单中添加一个新值作为可选选项,则可以,然后


    我试着复制你的代码,得到了你想要的解决方案

    如果你想在个人回答中勾选“其他”答案。您的响应字符串应如下所示:“其他_选项(国家)”

    例如,如果希望墨西哥出现在“其他:”选项中,则应将“\u其他\u选项墨西哥”作为territoryvalue变量的值。在代码的这一部分中应该是这样的:

    var territoryvalue = "__other_option__ Mexico"
    

    我看到你在Issue Tracker中提交了一个bug,根据你在那里的解释,我终于理解了这个问题

    这似乎是一个bug: 在表单中,如果通过应用程序脚本提交了带有
    其他
    选项的请求,则在尝试编辑响应时不会填充该其他选项。如果通过UI提交响应,则填充
    Other
    选项

    需要注意的是,响应本身已成功提交,可以在表单的
    响应
    选项卡中看到;试图编辑响应时,它只是没有填充

    复制步骤:
  • 创建一个
  • 为表单创建一个
    多选项(如果还没有)
  • 单击
    添加“其他”
    ,以获得
    其他选项
  • 单击
    设置
    (齿轮图标)并选中选项受访者可以:提交后编辑
  • 打开绑定到表单的脚本编辑器,复制并运行以下代码:
  • 使用浏览器访问URL(
    editUrl
  • 当试图编辑响应时,应填充选项2,但实际上并非如此
  • 问题追踪器: 您在issue Tracker中提交的问题刚刚被Google内部转发:


    任何受此影响的人,请考虑点击左上方的星星来跟踪它并帮助区分它。

    我不确定我是否理解。在
    问题
    选项卡中看不到墨西哥的答复
    (或其他任何答复),而是在
    答复
    选项卡()中。你在哪里看到空白字段?对不起,如果我的问题不是很有描述性的。有一个选择题,其中有两个选项-美国和其他(谷歌表单中的功能,允许用户输入任何其他不是选择题的文本)。在从脚本提交表单时,我们正在向这个多选项发送答案——如果我们以美国的身份发送答案,它也会接受并显示。我正试图找到一种方法来发送其他人作为这个选择题的答案。是的,我理解。我的问题是什么让你认为答案没有被发送。我试图复制这个,它肯定是为我发送的(我可以在
    Responses
    选项卡中看到响应,我为其发送了一个屏幕截图)。当然,只要我添加
    formResponse.submit()
    ,我的答案就会被发送出去,但是当我打开表单时,答案就不可见了。但正如您在截图中发送的,您有两个选项1。美国和2。墨西哥但我有两个选择,一个是美国,另一个是美国。其他:\ uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。我正在尝试提交表格,并将此其他选项作为答案。如果我有两个单选按钮,比如美国和墨西哥,那么它的工作状态和你的截图一样好。在
    Responses
    选项卡中显示
    Mexico
    ,因为这是在
    Other:
    选项中写的。在我的表格中没有选择墨西哥,只有美国和其他国家。当然,在这张表格中,如果我通过在
    其他:
    中键入
    墨西哥
    来提交答案,则可以成功看到该答案。我猜,值得一提的是,你在错误的地方寻找答案。你应该检查
    响应
    选项卡。我用同样的方法尝试了,但是没有显示出来。只有在美国,它才会显示出来,如果我传递的是它在后端响应google表单中显示的任何其他值,而不是在form@roshankumar我怀疑您是在询问如何在表单中添加另一个国家作为选项,而不是如何提交其他回复。请检查我的更新答案。我用同样的方法尝试了,但没有显示。只有在美国,它才会出现,如果我是“其他人”,它会出现在后端响应google表单中,但不会出现在formI-see中。请查看我的更新答案,并告诉我这是否解决了您的问题。@roshankumar请告诉我这是否解决了您的问题。:)我试过这个,当我只发送其他_选项时,其他字段的单选按钮就变了
    
    var territoryvalue = "__other_option__ Mexico"
    
    function submitAndGetEditResponse() {
      var form = FormApp.getActiveForm();  
      var item = form.getItems()[0].asMultipleChoiceItem();
      var otherOption = "Option 2"; // Not one of the named options
      var itemResponse = item.createResponse([[otherOption]]);
      var formResponse = form.createResponse().withItemResponse(itemResponse);  
      var editUrl = formResponse.submit().getEditResponseUrl();
      console.log(editUrl);
      return editUrl;
    }