Google表单验证birthday2024表格Random ID有效性的技术问询
问题解答
1. 是否可通过新建Google表单检索birthday2024表格M列的代码?
完全可行,借助Google Apps Script就能实现Google表单与目标表格的联动校验逻辑。
2. 具体实现方案
准备工作
- 给
birthday2024表格新增一列(比如N列,命名为「使用状态」),用来标记Random ID是否被使用,初始值统一设为「未使用」。 - 新建一个Google表单,仅添加一个「短文本」类型的问题,标题设为「请输入Random ID」。
编写Google Apps Script
打开新建的表单,点击右上角「扩展程序」→「Apps脚本」,替换默认代码为以下内容:
function onFormSubmit(e) { // 获取表单提交的Random ID const submittedId = e.response.getItemResponses()[0].getResponse(); // 关联birthday2024表格 const ss = SpreadsheetApp.openById("你的birthday2024表格ID"); const sheet = ss.getSheetByName("表格标签名"); // 替换为实际表格标签名 const data = sheet.getDataRange().getValues(); let isValid = false; let rowIndex = -1; // 遍历表格数据校验ID for (let i = 1; i < data.length; i++) { // 跳过表头,从第二行开始 const storedId = data[i][12]; // M列对应索引12(列从0开始计数) const expireDate = new Date(data[i][9]); // J列对应索引9 const useStatus = data[i][13]; // N列对应索引13 if (storedId === submittedId) { rowIndex = i + 1; // 表格行号从1开始 // 校验未过期且未被使用 const today = new Date(); if (today <= expireDate && useStatus === "未使用") { isValid = true; // 更新使用状态为已使用 sheet.getRange(rowIndex, 14).setValue("已使用"); } break; } } // 向提交者返回结果 const response = isValid ? "✅ 验证通过:Random ID正确、未过期且未被使用" : "❌ 验证失败:Random ID错误、已过期或已被使用"; e.response.withItemResponse(e.response.getItemResponses()[0]).setFeedback(response); }
配置触发器
- 在Apps脚本编辑器左侧点击「触发器」图标。
- 点击「添加触发器」,按以下配置:
- 运行函数:
onFormSubmit - 部署类型:「Head」
- 事件源:「表单」
- 事件类型:「当表单提交时」
- 运行函数:
- 保存触发器,按提示完成脚本权限授权。
注意事项
- 替换代码中的
你的birthday2024表格ID:打开目标表格,地址栏中d/与/edit之间的字符串即为表格ID。 - 替换代码中的
表格标签名:比如表格默认的「Sheet1」,需与实际标签一致。 - 若表格表头位置有调整,需对应修改代码中的列索引值。
内容的提问来源于stack exchange,提问作者Mauro Mancini
相关产品推荐
相关产品推荐

