Google Apps脚本 - 网格项目每行需要一个响应

时间:2018-02-23 03:09:50

标签: google-apps-script

我正在使用Google Apps脚本使用Google表单创建一些学生调查。我正在使用的问题类型是网格项。每一行都是关于老师的问题,每一栏都是评级(非常不同意,不同意等等)。

使用普通的Forms界面创建表单时,可以选择对网格项中的每一行请求响应。我搜索了所有文档,看来没有办法使用GAS设置它。我错过了什么或有任何解决方法吗?

我可以在创建所有表单后手动设置它,但是有很多课程和老师,所以这将非常耗时。

以下是目前的代码:

function createForm() {
  var form = FormApp.create('Student Survey');  
  
  var questions = getQuestions();
  var ratings = getRatings();
  
  var grid = form.addGridItem();
  
  grid.setTitle("Please answer the following questions about your teacher.");
  grid.setRows(questions);
  grid.setColumns(ratings);
  grid.isRequired();
  
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这有点偷偷摸摸,但它就在那里!

每个行一个回复使用GridItem's .setRequired(true);

每个列一个响应查看GridItem's setValidation()方法。您可以使用GridValidation构建GridValidationBuilder参数。 请参阅下面的代码的第二部分。

以下代码包含两种验证类型:

function createForm() {
  var form = FormApp.create('Student Survey');  

  var questions = getQuestions();
  var ratings = getRatings();

  var grid = form.addGridItem();

  grid.setTitle("Please answer the following questions about your teacher.");
  grid.setRows(questions);
  grid.setColumns(ratings);

  grid.setRequired(true); //This part is to require one response per row


  //This section requires one response per column.
  var gridValidation = FormApp.createGridValidation()
    .setHelpText("HELP TEXT")
    .requireLimitOneResponsePerColumn()
    .build();

  grid.setValidation(gridValidation);

}
相关问题