如何通过Google Apps Script(GAS)配置Google表单测验及响应设置
解决Google Apps Script表单测验配置错误的正确脚本
错误原因
你遇到的setMissedQuestions is not a function错误,是因为setMissedQuestions并非Form对象的直接方法,而是属于表单的测验配置对象,必须通过Form.setQuizSettings()获取配置后再调用相关方法。
正确脚本示例
假设你已经通过电子表格创建了表单(可替换为你实际的表单获取逻辑),以下是满足所有需求的完整代码:
function configureFormAsQuiz() { // 替换为你的表单ID,或使用已有表单获取方式 const formId = "你的表单ID"; const form = FormApp.openById(formId); // 1. 将表单设置为测验模式 form.setIsQuiz(true); // 2. 配置测验结果显示选项 const quizSettings = form.getQuizSettings(); quizSettings.setScoreDisplayType(FormApp.ScoreDisplayType.IMMEDIATE) // 提交后立即显示结果 .setShowCorrectAnswers(true) // 显示正确答案 .setShowMissedQuestions(true) // 显示未答问题 .setShowScores(true); // 显示分值 // 3. 开启收集受访者邮箱地址 form.setCollectEmail(true); // 4. 设置表单接受响应(按需开启) form.setAcceptingResponses(true); Logger.log("表单测验配置已完成"); }
关键说明
- 所有测验相关设置(显示未答问题、正确答案、分值)都需要通过
form.getQuizSettings()获取配置对象后调用对应方法,不能直接链式调用在Form实例上。 setScoreDisplayType(FormApp.ScoreDisplayType.IMMEDIATE)实现提交后立即显示结果的需求。setCollectEmail(true)开启收集邮箱地址的功能。
内容的提问来源于stack exchange,提问作者Chi
相关产品推荐
相关产品推荐

