【问题标题】:GAS Evaluate field before post Google Form发布 Google 表单之前的 GAS 评估字段
【发布时间】:2016-03-29 00:33:25
【问题描述】:

我有一个 Google 表单,里面有一个文本字段。

我想在发布帖子之前评估最终用户键入的内容,但经过几天的搜索,我无法做到。

code.gs 中,我可以访问文本字段并获取它的属性。如果你看到sdi.html,这会触发函数doEval()的调用。

我的问题是我不知道如何在 Google 表单本身中添加处理程序,以便我可以检查文本字段的内容是否可以被我的应用程序接受。例如:验证它是否为数字,如果为真则提交表单,否则取消提交过程并显示错误消息。

在旧版 Google 表单上,有创建处理程序的方法,但现在一切都在 HtmlService 方法下工作,我没有看到如何做到这一点的示例。

这是我的代码:

code.gs:

function doGet()
{
   return HtmlService.createHtmlOutputFromFile('sdi')
  .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function doEval()
{
    var frm = FormApp.getActiveForm();
    var items = frm.getItems();
    var text= items[1].asTextItem();
    text.setTitle("I can access the field from here!");
}

sdi.html:

<!DOCTYPE html>
<html>
<head>
<script>
  function onSuccess(isOk)
  {
  }

  google.script.run.withSuccessHandler(onSuccess)
      .doEval();
</script>
</head>
<body>
</body>
</html>

【问题讨论】:

  • 表单中有提交按钮吗?您可以使用typeof 来测试值的数据类型。现在,google.script.run. 不在函数内部。如果你把它放在一个函数里面,那么你可以运行google.script.run.或者不运行。
  • 您显示的不是谷歌表单。这是一个网络应用程序。
  • 你好,是的,你是对的,我一开始解释错了,是形式,但我从来没有表现出来。请检查我刚刚对 Spencer Easton 所做的回复,了解我在哪里解释得更好。干杯。

标签: google-apps-script google-forms


【解决方案1】:

您可以使用条件在 Goolge From 上验证用户的输入。这是一个非常好的参考: https://support.google.com/docs/answer/3378864?hl=en

无法在实时表单中运行脚本。您只能回复表单提交。

我对您的代码感到困惑,因为您似乎正在尝试使用 web 应用程序来验证表单。这不是行不通的。使用附加到表单的脚本编辑器。您可以在那里编写处理表单提交所需的代码。查看表单脚本快速入门:

https://developers.google.com/apps-script/quickstart/forms

【讨论】:

  • 感谢回复。我正在使用新的 Google 表单,但条件尚不可用。其次,我正在使用脚本编辑器,这是我编写“code.gs”的地方,我已将其附加到我的 Google 表单中。实际上我的问题的根源是,如何(通过使用脚本编辑器)在提交之前访问表单?,为了验证最终用户输入的数据是否有效,然后我可以对提交或不采取行动提交。请提前。
猜你喜欢
  • 2022-11-03
  • 2019-10-26
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2016-10-24
相关资源
最近更新 更多