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

Google Apps Script CardService Switch值未出现在formInputs中如何获取

Google Apps Script 卡片服务(Card Service)的 Switch 控件取值逻辑和普通输入控件不同,你遇到的情况是该控件的默认设计导致的,解决方法如下:

取值规则

  • Switch 处于选中状态时,你通过setFieldName配置的键才会出现在formInputs对象中,对应值为你通过setValue设置的内容
  • Switch 处于未选中状态时,对应的键不会出现在formInputs对象中,直接取值会返回undefined
  • 额外注意:formInputs中所有控件的取值均为数组类型,即便是 Switch 这类单值控件,也需要取数组第0位获取实际值

正确取值示例

你可以在表单提交处理函数或者 Switch 的 onChange 处理函数中用以下逻辑判断取值:

// 表单提交处理函数示例
function handleFormSubmit(e) {
  const switchFieldKey = "form_input_switch_key";
  let switchStatus;
  // 判断字段是否存在,存在即为选中状态
  if (e.formInputs.hasOwnProperty(switchFieldKey)) {
    switchStatus = e.formInputs[switchFieldKey][0]; // 取数组第0位获取设置的value
  } else {
    switchStatus = false; // 未选中状态,可自定义返回值
  }
  // 后续业务逻辑
  console.log("开关取值为:", switchStatus);
}

常见问题排查

如果按照上述逻辑仍然取不到值,可检查以下配置:

  • 确认setFieldName设置的字段名和取值时的键名完全一致,大小写敏感
  • 不要给多个控件设置相同的fieldName,会导致值被覆盖
  • 如果是在 Switch 绑定的onChangeAction对应处理函数中取值,需要从e.commonEventObject.formInputs对象中获取字段,取值规则和上述一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:39:03