[DAY 08] TextItem

再来就可以进入另一个题型大宗---填充题
填充题可以对应到表单中的「简答」

如果回答方式中不包含特殊符号或格式,如:上下标、数学式、化学式
就可以考虑使用填充题方式出题
如果有如上的题目可能就要考虑以选填题方式出题
如果还不行那好像也没办法了~XD


一样直接上码,详细内容可以阅读文档

function textItemFuction(formID){
  // 这段是建立填充题的例子
  var form = FormApp.openById(formID);
  var txt  = form.addTextItem();
  txt.setTitle('简答可以让作答者回覆一行文字')
     .setHelpText('可将此种题型视为填充题。')
     .setRequired(false);  //是否为必答,是为true;否为false
}

如果你想要规定回应内容
可以加上如下的部分并依所需更换

var textValidation = FormApp.createTextValidation()
                            .setHelpText('仅能输入1 ~ 100的数字')
                            .requireNumberBetween(1, 100)
                            .build();
txt.setValidation(textValidation);

填充题的回答限制更多了
可以限定回答数字、回答内容的形式
我个人常用的有:
requireNumberEqualTo(number)可以设定为选课密码,答对才能继续答题
requireTextContainsPattern(pattern)可以规定回答内容,pattern 可以是一个正则表达式
requireTextLengthGreaterThanOrEqualTo(number)规定至少回答的字数
requireTextLengthLessThanOrEqualTo(number)规定最多回答的字数
requireWholeNumber()规定仅能回答整数(如 : 2, -3)


从文档中也可以看到
TextItem 没有.setPoints().setAnswer()的方法
也就是说TextItem 不能设定答案与配分
呼应之前所说设定为测验的意义不大
因为到最後自己还是要再写一个算分的方法
索性直接设为.setIsQuiz(false)


<<:  Day13 - 动态 新增/删除 Collection 项目(一)

>>:  JavaScript学习日记 : Day1 - 前言

【第一天 - Flutter 生命周期+基本观念介绍】

什麽是 StatefulWidget? 他是一个具备 State(状态)的元件,里面所有可变状态的子...

Day33 ( 游戏设计 ) 拍西瓜 ( 储存最高分 )

拍西瓜 ( 储存最高分 ) 教学原文参考:拍西瓜 ( 储存最高分 ) 这篇文章会在 Scratch ...

[Python 爬虫这样学,一定是大拇指拉!] DAY24 - 实战演练:伪装

伪装 伪装!?爬虫还要伪装喔? 是的,不知道各位还记不记得在"关於爬虫"有提到过: 爬虫存取网站的过...

Day 28 : 应用篇 — 如何透过 Obsidian 帮助知识工作者写作 ? 分享我的 Obsidian 写作流程

前言 近期陆续收到许多朋友的来信,询问 Obsidian 可以如何应用。经过几次的讨论,我发现许多人...

Day19 K平均演算法实作

https://github.com/PacktPublishing/Machine-Learni...