我想实现一个工作流程,用户通过 Google 表单提交数据,他们的回复会自动发布到预先存在的 PDF 表单中。
我有几个经常使用的 PDF 表单。我创建了一个 Google 表单来收集完成 PDF 所需的所有信息。现在我正在尝试找到一种方法将答案映射到原始 PDF。
我怎样才能做到这一点?
我有一个表单的一部分,询问用户几个问题,其中包含“根据答案转到页面”重定向。
我希望表单按顺序循环重定向,但它只执行最后一次重定向。
例如
Q1. 你喜欢苹果吗?
是 - 转到“Apple 问题”部分
否
Q2。你喜欢橙子吗?
是 - 转到“橙色问题”部分
否
Q3。你喜欢香蕉吗?
是 - 转到“香蕉问题”部分
否
目前,如果用户对所有 3 个问题都回答“是”,他们会被引导至“香蕉问题”部分,然后转到表格末尾。
我希望这样,如果用户对多个问题说“是”,他们会依次执行每个额外的部分...例如,如果他们对所有三个问题都勾选“是”,则用户将被带到“Apple Questions”,然后是“Orange Questions”然后是“香蕉问题”部分,然后完成形成。
我能找到的唯一方法是将每个问题放在单独的页面中......这对用户来说会很糟糕。
这可以在 Google 表单中实现吗?如果没有,有人知道有任何免费形式的替代品可以输入到 Google Drive 中吗?
感谢您的帮助
马丁
我想创建谷歌表单,其中有多个文本框选项,选择复选框后,我想为相应的复选框添加另一个文本框。
例如,假设有一个多项选择题,如果有人选择了一个特定选项,我还想要选择该选项的解释,例如:Select the timeslots in which you are busy?Slot 1- ___________________(Reason)Slot 2- ___________________(Reason)Slot 3-___________________(Reason)
我已尽力解释。
提前致谢
项目密钥: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
我想使用正则表达式来验证名称。名称必须包含名字、中间名、姓氏(不一定全部)。但我还想强加一个条件,即名称必须至少包含四个字符。我发现 regex 在这里验证全名Java Regex to Validate Full Name ...并找到了 regex 来检查字符串中至少三个字符(字母)的检查 在这里Regex 检查至少 3 个字符。但我不确定如何将这两者结合起来以获得所需的结果。请帮助我实现所需的正则表达式,以便我可以完成我的项目。
我编写了一个 google 电子表格脚本,用于解析电子表格并使用数据创建表单。
创建表单后,我可以手动转到表单设置-> 测验,然后“将其设为测验”。完成测验后,我可以手动为每个问题分配分数和正确答案。
有谁知道在创建表单时编写脚本的方法?具体来说,在我的 google 电子表格中,我的脚本使用 FormApp 创建表单并添加问题。当脚本创建表单时,我想添加设置“将此作为测验”,并且当脚本创建每个问题时,我想设置答案键并分配分值。我不确定这种能力是否存在,因为我在 FormApp 类中找不到它。
谢谢
嗨,我正在网站中嵌入 Google 表单,通过 .
我想在表单中添加一个回调函数,这样我就可以现在用户提交它,并且我可以关闭表单窗口(或显示一个按钮来关闭它)。
怎么做?
我还没有在 GDoc Form 中找到这样的功能。我看到有一个脚本编辑器,但不能让它为我工作,似乎有点矫枉过正。
我正在向我的 html 页面添加一个按钮,该按钮始终显示在表单的顶部,但实际上我希望它仅在用户完成表单后出现。
-- 已编辑
但我仍然经历
Uncaught DOMException: Blocked a frame with origin
Run Code Online (Sandbox Code Playgroud) 不确定这是否是一个错误,但是该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) 通过 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) 我的网络浏览器登录了多个 Google 帐户,并且我有一个像这样受限制的 Google 表单 URL,我需要使用特定帐户打开它。
https://docs.google.com/forms/d/e/XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx/viewform
Google Forms 没有 UI 方法来switch accounts喜欢他们的许多其他产品,它总是会尝试使用默认帐户(您在网络浏览器中进行身份验证的第一个帐户)打开表单。
有没有办法让它在正确的帐户中打开?
google-forms ×10
javascript ×2
callback ×1
checkbox ×1
form-submit ×1
forms ×1
google-apps ×1
iframe ×1
regex ×1
textbox ×1
triggers ×1
validation ×1