首页 > 解决方案 > 基于响应的不同确认消息

问题描述

我的谷歌表单只有一个问题要求用户输入 1 到 10 之间的数字。我希望确认消息根据用户选择 1 到 4 或 5 到 10 之间的数字而改变。我只得到第一个回应。

  function myFunction() {
  var form = FormApp.getActiveForm();
  var choice = form.getResponses();
  var response;
  if (choice<5){
  form.setConfirmationMessage('Custom Response 1');
  } else {
  form.setConfirmationMessage('Custom Repsonse 2');
  }
}

标签: google-apps-scriptgoogle-forms

解决方案


问题:

这里有两个问题:

  • 第一个与您的代码有关:

    choice不是一个值,而是所有表单响应的数组。要获得最后一个响应的第一个值,假设您的表单只有一个问题,您需要这样做:

    var choice_value=parseInt(choice[choice.length-1].getItemResponses()[0].getResponse());

  • 第二个与这里setConfirmationMessage有很好的解释有关:

    我们不能有条件地设置并立即根据当前用户的回答显示自定义消息。从某种意义上说,确认消息是“预先加载的”。

不是所需的解决方案,但更接近您想要的:

  function myFunction() {
  var form = FormApp.getActiveForm();
  var choice = form.getResponses();
  var choice_value=parseInt(choice[choice.length-1].getItemResponses()[0].getResponse());
  var response;
  
  if (choice_value<5){
   response = 'Custom Response 1';
  } else {
   response = 'Custom Response 2';
  }
    
    form.setConfirmationMessage(response);
}

此解决方案在提交表单后不会返回正确的响应消息,这不是所需的行为。但这是setConfirmationMessage功能的局限。据我所知,没有办法根据答案动态设置确认消息。


推荐阅读