我一直在网上阅读和观看很多教程但是我找不到一些我最初可以加载某种对话框或带有单个输入文本的登录页面的东西,所以我可以使用应用程序脚本来处理它。
完成表单的用户不会触发onFormOpen()。
在我的onSubmitForm()函数中,我有以下代码:
function onFormSubmit(e){
var formResponses = FormApp.getActiveForm().getResponses();
var formResponse = formResponses[formResponses.length-1];
var itemResponses = formResponse.getItemResponses();
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
Logger.log('Last response to the question "%s" was "%s"',
itemResponse.getItem().getTitle(),
itemResponse.getResponse())
}
}
有什么方法可以防止这里提交的表单有某种逻辑条件,例如:只有当某些字段符合某些条件时才执行表单提交?
答案 0 :(得分:1)
有什么方法可以防止这里提交的表单有某种逻辑条件,例如:只有当某些字段符合某些条件时才执行表单提交?
您可以使用form rules:
您可以创建人们在填写表单时必须遵循的规则。例如,如果您要求提供电子邮件地址,则可以确保人们只能提交格式正确的电子邮件地址。
关于onFormOpen(),没有以这种方式命名的内置触发器。您可以将其用作打开的可安装触发器的名称,但它仅在打开表单编辑器时运行,而不是在打开表单视图时运行。
关于添加自定义日志记录,如果您使用G Suite帐户,则可以限制与您的帐户在同一域中对用户的访问权限,但您无法进一步限制访问权限。
一个hacky替代方案是从表单视图中获取源代码并“调整”它以由Google Apps脚本提供服务或将其托管在您自己的Web服务器上。这意味着您将注入自定义表单规则/数据验证。更简单的方法是使用旧的Google表单并复制/粘贴表单的源代码,但可以使用UrlFetch。
另一种方法是使用Google Apps脚本中的HtmlService服务来创建和提供您的表单,这实际上可以让您完全控制表单行为。见Forms - HTML Service: Communicate with Server Functions
相关:
上