在提交之前基于其他响应动态填充表单字段

时间:2014-07-07 05:51:10

标签: google-apps-script google-sites google-form

我有一个我希望动态更改的表单,我已经阅读了文档,但我似乎无法找到任何确定的答案。我可以让我的表单从下拉列表中删除选项,因为他们使用第3个问题的单选按钮#2?我可以格式化问题1中的文本并使用它来预先填写问题6并使用相同的答案(默认情况下,需要更改)吗?

基本上我需要使用代码来确定地址是用拼写(st,rd,cres,ct)拼写,还是加长和封装它们(Street,Road)。我甚至不知道这是否可行。如果可以,任何人都可以提供示例代码或指向正确的帮助文档,我们将不胜感激。如果不能在网络服务器上这样做,如果我需要从谷歌电子表格中读取我的一些多项选择?我可以通过谷歌网站吗?

2 个答案:

答案 0 :(得分:1)

您是否查看了Form Google Apps服务类?

Class Forms

它声明:

  

可以从FormApp访问或创建表单。

例如,您可以使用:

addTextItem()

OR:

createChoice(value)

Google Documentation

 // Open a form by ID and add a new multiple choice item.
 var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
 var item = form.addMultipleChoiceItem();
 item.setTitle('Do you prefer cats or dogs?')
     .setChoices([
         item.createChoice('Cats'),
         item.createChoice('Dogs')
      ])
     .showOtherOption(true);

您不想打开新表单,但请使用当前打开的表单。

/**
 * Adds a custom menu to the active form, containing a single menu item for
 * invoking checkResponses() specified below.
 */
function onOpen() {
  FormApp.getUi()
      .createMenu('My Menu')
      .addItem('Check responses', 'checkResponses')
      .addToUi();
}

检查当前的回复?

/**
 * Gets the list of responses and checks the average rating from the form
 * created in createForm() above.
 */
function checkResponses() {
  var form = FormApp.getActiveForm();
  var responses = form.getResponses();
  var score = 0;
  for (var i = 0; i < responses.length; i++) {
    var itemResponses = responses[i].getItemResponses();
    for (var j = 0; j < itemResponses.length; j++) {
      var itemResponse = itemResponses[j];
      if (itemResponse.getItem().getType() == FormApp.ItemType.SCALE) {
        score += itemResponse.getResponse();
      }
    }
    var average = score / responses.length;
    FormApp.getUi().alert('The score is ' + average);
  }
}

答案 1 :(得分:0)

您可以使用Apps脚本HTML服务;编写HTML以创建自定义表单;编写JavaScript代码来做你想做的事情;然后将Apps脚本添加到Google站点。或者只是将Apps脚本HTML服务作为其自己的网站运行。但是这个选项要求您能够编写HTML和JavaScript。你想做什么是可能的。

至于创建自定义表单,检查用户输入并进行更改,可以在Apps脚本HTML服务中完成。然后你需要在某处保存数据。 Google表单旨在方便那些没有编程知识的人。

您似乎只是在寻找有关不同产品可能和不可能的一般信息,以便您可以做出选择。

有关HTML服务的阅读,请单击以下链接作为开始的地方:

Google Documentation HTML Service