【问题标题】:Set pre-filled value of Google Form item from google apps script从谷歌应用脚​​本设置谷歌表单项的预填充值
【发布时间】:2020-03-09 06:51:44
【问题描述】:

我想达到什么目标?

我想使用谷歌表单跟踪谷歌文档的审阅状态,该表单的下拉选项为“待办事项、进行中、完成”。我有谷歌表单项作为“文档的 URL,状态”。我创建了一个谷歌表单模板,我将使用它为各种用户创建表单。我希望能够创建模板表单的副本,并从谷歌应用程序脚本中设置“URL”的预定义值,以便用户只需选择文档的状态。

我尝试了什么?

我从这个answer 中遇到了createResponse() 方法,但这需要使用.submit() 来保存响应并且答案记录在工作表中。我不想从脚本本身提交表单。代码如下:

function form()
{
  var form  = FormApp.create("Test");
  form.addTextItem().setTitle("URL");
  form.addTextItem().setTitle("Status");

  var items = form.getItems();
  var url = items[0].asTextItem();
  var fr = url.createResponse('my predefined url');

  var FormResponse = form.createResponse();
  FormResponse.withItemResponse(fr);
  FormResponse.submit();
  Logger.log(form.getPublishedUrl());
}

最终查询:

如何从应用程序脚本中获取表单的已发布 URL,其中包含对 URL 项的预填答案?有可能吗?

【问题讨论】:

  • 很抱歉这么说,但目前不可能。
  • 其实我可以使用.toPrefilledUrl() 方法实现它。我在下面的答案中提到过。

标签: google-apps-script google-forms


【解决方案1】:

原来有一个方法.toPrefilledUrl(),它返回带有预填充值的已发布表单的url。这是一个例子:

  var form  = FormApp.openByUrl("url");
  var items = form.getItems();
  var url = items[0].asTextItem();
  var d= "some.url"
  var fr = url.createResponse(d);

  var FormResponse = form.createResponse();
  var urlPub = FormResponse.withItemResponse(fr).toPrefilledUrl();
  Logger.log(urlPub);

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 2022-08-17
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多