【问题标题】:How to read selected radio button value in google form by using Google App script如何使用 Google App 脚本读取 google 表单中选定的单选按钮值
【发布时间】:2020-04-15 09:11:58
【问题描述】:

在谷歌表单上工作。我有两个单选按钮。根据用户选择的单选按钮,我应该在 google App 脚本中调用不同的函数。我是这项技术的新手。有人可以帮我解决这个问题吗..

我正在尝试使用 FormApp 类。但找不到路。

function myFunctiontest() {
   var form = FormApp.getActiveForm();
   var formResponses = form.getResponses();
  var itemr,title,res;
  for (var i = 0; i < formResponses.length; i++) {
  var formResponse = formResponses[i];    
  var itemResponses = formResponse.getItemResponses();
  for (var j = 0; j < itemResponses.length; j++) {
    var itemResponse = itemResponses[j]   
    var item =  itemResponse.getItem();//.asMultipleChoiceItem();
                itemResponse.getItem().getType(),    
                itemResponse.getItem().getTitle(),
                itemResponse.getResponse();
                res = itemResponse.getResponse().;
    if (item.getType() == 'MULTIPLE_CHOICE' && res == 'A')  
    {
       itemr= itemResponse.getItem().asMultipleChoiceItem(),    
       title =itemResponse.getItem().getTitle(),
       res =  itemResponse.getResponse();
       Logger.log('Response Type : ',itemr );
       Logger.log('Response Type title  :',title );    
       Logger.log('Response Type  res:',res ); 
    }

     }            
  }

}  

【问题讨论】:

  • 当用户选择一个按钮时,您不能直接运行脚本,只能在他提交表单后运行。
  • 例如。我有两个名为 A 和 B 的单选按钮,并且我在表单中有一个提交按钮。如果我选择单选按钮 A 并单击提交按钮意味着应该调用一个函数。如果我选择单选按钮 B 并单击提交按钮意味着另一个应该调用。
  • 这是可能的。在寻求帮助之前,请提供您自己编写这样一个脚本的一些努力。基本上:您需要使用 onFormSubmit 触发器并访问表单响应项。
  • 是的,我已经尝试了附加的代码。但它返回的是所有响应而不是当前响应。您能否帮我获取当前选定的值。

标签: google-apps-script google-sheets google-sheets-api google-forms


【解决方案1】:

编写两个附加函数并根据条件语句的结果调用它们

  • 因此,如果只是一个特定的问题,哪个答案应该引发函数的运行 - 您可以通过提供它的索引来指定它是哪个问题。

示例:

function myFunctiontest() {
  var form = FormApp.getActiveForm();
  var formResponses = form.getResponses();
  var itemr,title,res;
  for (var i = 0; i < formResponses.length; i++) {
    var formResponse = formResponses[i];    
    var itemResponses = formResponse.getItemResponses();
    var questionNumber = 1;
    var selectedQuestion = itemResponses[questionNumber-1];
    var item = selectedQuestion.getItem();
    var response = selectedQuestion.getResponse();    
    if (item.getType() == 'MULTIPLE_CHOICE' && response == 'A')  
    {
      myFunction1(); 
    }
    else if (item.getType() == 'MULTIPLE_CHOICE' && response == 'A'){
      myFunction2(); 
    }       
  }  
}


function myFunction1(){
  Logger.log("You called function 1");
}

function myFunction2(){
  Logger.log("You called function 2");
}

【讨论】:

  • 嗨,我已经尝试过上述方法。但仍然收到多个响应,而不是当前响应。
  • 嗨,我已经完成了更改,当我尝试通过从脚本编辑器运行脚本时它工作正常,因为从它导航不起作用。请帮我解决这个问题。
  • 您应该只收到对var questionNumber = 1 的回复,而不是多个回复。 navigating from 是什么意思?如果您希望脚本自动运行,您必须将其绑定到onFormSubmit trigger
猜你喜欢
  • 1970-01-01
  • 2013-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 1970-01-01
相关资源
最近更新 更多