如何使用Google Apps Script在Google Forms中创建可评分文本项?
给Google Forms文本项设置正确答案的实现方法
嘿,我懂你想要的效果——就像给复选框设置正确选项那样,给文本输入题指定一个标准答案对吧?可惜Google Apps Script里的TextItem并没有直接的setAnswer()方法,不过我们可以用两种变通方式来实现类似功能:
方法1:用响应验证强制匹配正确答案
如果想让用户输入的内容必须符合标准答案才能提交,可以给文本项添加响应验证规则,比如精确匹配(还能设置不区分大小写):
var textitem = Form.addTextItem(); textitem.setTitle("What is the capital of Japan?"); // 创建文本验证规则,要求输入内容匹配"tokyo"(不区分大小写) var validation = FormApp.createTextValidation() .setHelpText("提示:这是日本的一座大城市哦!") .requireTextMatchesPattern("(?i)^tokyo$") // (?i)开启不区分大小写,^和$确保完全匹配 .build(); textitem.setValidation(validation);
这样用户输入的内容如果不是"tokyo"(不管大小写),表单会阻止提交并显示提示文本。
方法2:在表单提交时验证答案正确性
如果不需要限制用户提交,只是想在后台判断答案是否正确,可以绑定表单的提交触发事件,在用户提交后自动校验:
// 这个函数需要绑定到表单的「提交时」触发事件 function onFormSubmit(e) { // 获取用户的所有响应 var itemResponses = e.response.getItemResponses(); // 遍历所有问题响应 itemResponses.forEach(function(itemResponse) { var question = itemResponse.getItem(); // 找到目标问题 if (question.getTitle() === "What is the capital of Japan?") { var userAnswer = itemResponse.getResponse().toLowerCase(); var correctAnswer = "tokyo"; // 判断答案是否正确,这里可以添加自定义逻辑 if (userAnswer === correctAnswer) { Logger.log("答案正确!"); // 比如:把正确标记写入关联的Google表格、发送通知邮件等 } else { Logger.log("答案错误,用户输入:" + userAnswer); } } }); }
补充说明
如果你的需求是自动给文本题评分,其实Google Forms原生就支持这个功能——在表单编辑界面打开「设置」→「测验」,然后给文本题设置正确答案和得分,不需要写脚本也能实现基础的自动评分哦!
内容的提问来源于stack exchange,提问作者Siva-Sg
相关产品推荐
相关产品推荐

