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

如何使用Google Apps Script隐藏Google Forms中的预填充问题?

解决Google Forms预填充问题隐藏需求

要实现预填充字段自动填充但用户不可见的效果,你可以通过Google Apps Script正确配置表单项目的可见性并生成预填充链接,以下是具体步骤:

步骤1:获取目标问题ID

首先需要找到你要隐藏的问题的ID,运行以下脚本获取所有表单项目的ID:

function listAllItems() {
  const form = FormApp.getActiveForm();
  const items = form.getItems();
  items.forEach(item => {
    console.log(`问题标题:${item.getTitle()},ID:${item.getId()}`);
  });
}
  • 点击脚本编辑器顶部的运行按钮,授权后查看日志(视图 > 日志),找到目标问题对应的ID。

步骤2:编写隐藏并生成预填充链接的脚本

替换脚本编辑器中的默认代码为以下内容,注意替换YOUR_QUESTION_ID和保密的预填充内容为实际值:

function createHiddenPrefilledLink() {
  const form = FormApp.getActiveForm();
  const targetQuestionId = "YOUR_QUESTION_ID"; // 替换为你的问题ID
  const targetItem = form.getItemById(targetQuestionId);

  // 根据问题类型设置隐藏(这里以短文本为例,其他类型需调整)
  if (targetItem.getType() === FormApp.ItemType.TEXT) {
    const textItem = targetItem.asTextItem();
    textItem.setVisible(false); // 隐藏问题
    textItem.setRequired(false); // 如果不需要必填可设为false
  } else if (targetItem.getType() === FormApp.ItemType.LIST) {
    // 如果是下拉框类型,用这段代码
    const listItem = targetItem.asListItem();
    listItem.setVisible(false);
  }

  // 设置预填充值并生成链接
  const prefillValue = "保密的预填充内容"; // 替换为你的预填充值
  const response = form.createResponse();
  const itemResponse = targetItem.asTextItem().createResponse(prefillValue); // 类型需匹配问题类型
  response.withItemResponse(itemResponse);

  const prefillUrl = response.toPrefilledUrl();
  console.log("生成的预填充链接:" + prefillUrl);
}

步骤3:生成并测试链接

  • 运行createHiddenPrefilledLink函数,查看日志获取预填充链接。
  • 复制链接打开测试:用户看不到目标问题,但提交表单后,你可以在表单的“响应”中看到预填充的值已被记录。

注意事项

  • 确保问题类型与脚本中的asXXXItem()方法匹配,比如段落文本用asParagraphTextItem(),多选框用asCheckboxItem()。
  • 如果需要动态生成预填充链接(比如根据不同用户生成不同值),可以修改脚本接收参数,结合部署为Web应用实现。

内容的提问来源于stack exchange,提问作者rafaelpaie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:44:57