标签: google-forms

将 Google 表单响应映射或导出到 PDF 表单字段

我想实现一个工作流程,用户通过 Google 表单提交数据,他们的回复会自动发布到预先存在的 PDF 表单中。

我有几个经常使用的 PDF 表单。我创建了一个 Google 表单来收集完成 PDF 所需的所有信息。现在我正在尝试找到一种方法将答案映射到原始 PDF。

我怎样才能做到这一点?

google-sheets google-apps-script google-forms

5
推荐指数
1
解决办法
1万
查看次数

包含多个问题的页面部分,带有“根据答案转到页面”重定向,是否可能?

我有一个表单的一部分,询问用户几个问题,其中包含“根据答案转到页面”重定向。

我希望表单按顺序循环重定向,但它只执行最后一次重定向。

例如

果盘

Q1. 你喜欢苹果吗?
是 - 转到“Apple 问题”部分
否

Q2。你喜欢橙子吗?
是 - 转到“橙色问题”部分
否

Q3。你喜欢香蕉吗?
是 - 转到“香蕉问题”部分
否


目前,如果用户对所有 3 个问题都回答“是”,他们会被引导至“香蕉问题”部分,然后转到表格末尾。

我希望这样,如果用户对多个问题说“是”,他们会依次执行每个额外的部分...例如,如果他们对所有三个问题都勾选“是”,则用户将被带到“Apple Questions”,然后是“Orange Questions”然后是“香蕉问题”部分,然后完成形成。

我能找到的唯一方法是将每个问题放在单独的页面中......这对用户来说会很糟糕。

这可以在 Google 表单中实现吗?如果没有,有人知道有任何免费形式的替代品可以输入到 Google Drive 中吗?

感谢您的帮助

马丁

google-drive-api google-forms

5
推荐指数
1
解决办法
933
查看次数

在谷歌表单中使用文本框创建复选框

我想创建谷歌表单,其中有多个文本框选项,选择复选框后,我想为相应的复选框添加另一个文本框。
例如,假设有一个多项选择题,如果有人选择了一个特定选项,我还想要选择该选项的解释,例如:
Select the timeslots in which you are busy?
Slot 1- ___________________(Reason)
Slot 2- ___________________(Reason)
Slot 3-___________________(Reason)
我已尽力解释。

提前致谢

checkbox textbox google-forms

5
推荐指数
1
解决办法
2万
查看次数

Google 脚本通过电子邮件发送表单值,错误:无法读取属性“namedValues”

项目密钥:MyvPlY2KvwGODjsi4szfo389owhmw9jII

我正在尝试运行一个脚本,每次提交表单时都会通过电子邮件发送表单内容。我完全按照下面这个链接中的说明进行操作,直到开始出现错误,并且我收到了更改脚本以按 id 打开电子表格的建议:

http://www.snipe.net/2013/04/email-contents-google-form/

当我完成表格后,它应该将内容通过电子邮件发送到我的电子邮件。

我现在遇到的问题是,遍历表单值的函数不起作用。它返回错误

类型错误:无法从未定义中读取属性“namedValues”。(第 15 行,文件“代码”)”

关于下面的代码:

for(var i in headers) 
   message += headers[i] + ': '+ e.namedValues[headers[i]].toString() + "\n\n";
Run Code Online (Sandbox Code Playgroud)

我对 Google Apps 脚本不太熟悉,所以我也不知道如何解决这个问题。有什么可以推荐的吗?我已将整个脚本包含在下面。

function sendFormByEmail(e) 
{    
  // Remember to replace this email address with your own email address
  var email = "sample@email.com"; 
 
  var s = SpreadsheetApp.openById("1hOqnK0IVa2WT6-c-MY0jyGGSpIJIV2yzTXdQYX4UQQA").getSheets()[0];
  var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
  var message = "";
  var subject = "New User Form";
 
  // The variable e holds all the form values in an array.
  // Loop through …
Run Code Online (Sandbox Code Playgroud)

javascript triggers google-apps google-apps-script google-forms

5
推荐指数
1
解决办法
1万
查看次数

正则表达式验证至少有四个字符的全名

我想使用正则表达式来验证名称。名称必须包含名字、中间名、姓氏(不一定全部)。但我还想强加一个条件,即名称必须至少包含四个字符。我发现 regex 在这里验证全名Java Regex to Validate Full Name ...并找到了 regex 来检查字符串中至少三个字符(字母)的检查 在这里Regex 检查至少 3 个字符。但我不确定如何将这两者结合起来以获得所需的结果。请帮助我实现所需的正则表达式,以便我可以完成我的项目。

regex validation google-forms

5
推荐指数
2
解决办法
2万
查看次数

“将此作为测验”并在谷歌电子表格脚本中使用 FormApp 创建答案键

我编写了一个 google 电子表格脚本,用于解析电子表格并使用数据创建表单。

创建表单后,我可以手动转到表单设置-> 测验,然后“将其设为测验”。完成测验后,我可以手动为每个问题分配分数和正确答案。

有谁知道在创建表单时编写脚本的方法?具体来说,在我的 google 电子表格中,我的脚本使用 FormApp 创建表单并添加问题。当脚本创建表单时,我想添加设置“将此作为测验”,并且当脚本创建每个问题时,我想设置答案键并分配分值。我不确定这种能力是否存在,因为我在 FormApp 类中找不到它。

谢谢

javascript google-apps-script google-forms google-form-quiz

5
推荐指数
1
解决办法
1008
查看次数

Google Form提交后的回调函数

嗨,我正在网站中嵌入 Google 表单,通过 .

我想在表单中添加一个回调函数,这样我就可以现在用户提交它,并且我可以关闭表单窗口(或显示一个按钮来关闭它)。

怎么做?

我还没有在 GDoc Form 中找到这样的功能。我看到有一个脚本编辑器,但不能让它为我工作,似乎有点矫枉过正。

我正在向我的 html 页面添加一个按钮,该按钮始终显示在表单的顶部,但实际上我希望它仅在用户完成表单后出现。

-- 已编辑

尝试过iFrame src 更改事件检测?

但我仍然经历

Uncaught DOMException: Blocked a frame with origin
Run Code Online (Sandbox Code Playgroud)

forms iframe user-experience callback google-forms

5
推荐指数
0
解决办法
770
查看次数

Google 表单脚本 ItemResponse getScore() 返回 null

不确定这是否是一个错误,但是该getScore()方法(https://developers.google.com/apps-script/reference/forms/item-response#getscore)总是null为我返回,虽然据说它应该返回A double。

该表格是一个测验,接受答案,分数设置2为所有问题,分数记录在 Google 表格的回复中。

// Code.gs

function onOpen (e) {
  setOnSubmitTrigger();
}

function setOnSubmitTrigger () {
  var form = FormApp.getActiveForm();

  ScriptApp.newTrigger(respondToFormSubmit)
    .forForm(form)
    .onFormSubmit()
    .create();
}

function respondToFormSubmit (e) {
  var form = FormApp.getActiveForm();
  var allResponses = form.getResponses();
  var response = allResponses[allResponses.length - 1];
  var itemResponses = response.getItemResponses();

  console.log(form.isQuiz()); // yields true

  for (var i in itemResponses) {
    var itemResponse = itemResponses[i];

    Logger.log(itemResponse.getScore()); // (!) …
Run Code Online (Sandbox Code Playgroud)

google-apps-script google-forms google-form-quiz

5
推荐指数
1
解决办法
2093
查看次数

如果将表单设置为收集电子邮件,则通过 Google Apps 脚本提交 Google 表单将失败

通过 Apps 脚本提交表单时,如果表单设置为收集用户电子邮件以进行回复,则代码将失败并显示错误:

“抱歉,无法提交表单回复。请等待几分钟,然后重试。”

我认为谷歌可能已经改变了一些东西,因为去年运行的代码今年不起作用。

错误指向代码中的“提交”行。或者有时,代码运行,但仍然没有出现在工作表中,或者在表单本身的“响应”中。

如果我关闭收集电子邮件的选项,它运行良好,我会在 Google 表格中看到提交,只是没有电子邮件地址。

我设置了一个测试表单,将其附加到一个新的谷歌表以供回复,并粘贴到我的代码中:

function codeVoteDoVoteByForm()
{
  
  // Get the Yes/No Google form
  var myForm = FormApp.openById('File ID Here')

  // Get a list of questions on it
  var questions = myForm.getItems()
 
  // Get question 0 (only one on this form) and mark it as multiple choice
  var qt = questions[0].asMultipleChoiceItem()
  
  // Set the users vote
  var qr = qt.createResponse("I am here")
  
  //Create the response
  var FormResponse = myForm.createResponse()
  var testemail = FormResponse.getRespondentEmail()
  // Submit …
Run Code Online (Sandbox Code Playgroud)

form-submit google-apps-script google-forms

5
推荐指数
1
解决办法
2186
查看次数

当我尝试打开受限制的 Google 表单时,如何更改帐户?

我的网络浏览器登录了多个 Google 帐户,并且我有一个像这样受限制的 Google 表单 URL,我需要使用特定帐户打开它。

https://docs.google.com/forms/d/e/XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx/viewform

Google Forms 没有 UI 方法来switch accounts喜欢他们的许多其他产品,它总是会尝试使用默认帐户(您在网络浏览器中进行身份验证的第一个帐户)打开表单。

有没有办法让它在正确的帐户中打开?

google-forms

5
推荐指数
1
解决办法
5194
查看次数