通过ID获取表单元素时出错

时间:2014-08-04 14:05:28

标签: google-apps-script

这实际上是我在这里发表的第一篇文章,我在这个网站上找到了很多答案,但从来没有问过一个问题,所以在这里! 我迷失了为什么我似乎无法让它发挥作用。我已经过检查,检查和三重检查,以确保我的表单ID和元素ID是正确的但仍然没有得到任何结果。 以下是我正在使用的代码块:

function UpdateForm()
{

// Acquire Organization form by ID
var Oform = FormApp.openById("XXXXXXXXXXXXXXXXXXXXXXXXXXXX");
//Acquire specific form elements by element ID
  var ServiceList = Oform.getItemById(1234496377).asCheckboxItem();
  var NeedsList = Oform.getItemById(694738992).asCheckboxItem();
  var ServiceAgeList = Oform.getItemById(1874307280).asCheckboxItem();
  var NeedsAgeList = Oform.getItemById(476187889).asCheckboxItem();
  var CountyList = Oform.getItemById(265793198).asListItem();

// Acquire Volunteer form by ID
var Vform = FormApp.openById("XXXXXXXXXXXXXXXXXXXXXXX");
//Acquire specific form elements by element ID
  var VCountyList = Vform.getItemById(1434441318).asListItem();
  var InterestList = Vform.getItemById(277694527).asCheckboxItem();

组织表格的第一部分工作正常,但志愿者部分的第二部分没有。我收到错误:

  

TypeError:无法调用方法" asListItem"为null。 (第16行,档案   " UpdateForm&#34)

我尝试使用相同的错误切换VCountyList和InterestList(当然除了它是一个null asCheckboxItem)

我已经尝试评论组织表单的整个第一个块,因为我不确定脚本是否可以处理多个表单,但是我得到了同样的错误。

我已经尝试过从表单本身的脚本编辑器中运行Vform块(所有这些代码都是从提交表中的脚本编辑器运行的)并且它也没有工作;同样的错误。

我完全失去了。

1 个答案:

答案 0 :(得分:3)

我知道这个答案可能看起来很简单,但我会Vform.getItems()并确认您要查找的项目实际上是您想要的项目。甚至可能像这样单调乏味:

var Vform = FormApp.openById("xxxxxxxxxx");
var items = Vform.getItems();
for (var i = 0; i < items.length; i++)
  Logger.log(items[i].getId() + ': ' + items[i].getType());

很抱歉,如果这不是您要找的答案。我想也许这种调试会有所帮助。