You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:34:03