iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
Software Development

一份考卷不夠你可以出兩份!用 google apps script 出線上考題系列 第 8

[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)


上一篇
[DAY 07] GridItem
下一篇
[DAY 09] ParagraphTextItem
系列文
一份考卷不夠你可以出兩份!用 google apps script 出線上考題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言