2014-01-30 52 views
1

我正在尝试基于存储的表单创建一个动态表单。 我写的代码不起作用。如何通过修改存储的表单来制作动态Google表格

当获得表格填写的用户运行它时,应首先修改所有文本,并用根据上次提交确定的关键字替换单词kkkk。

如果不能完成,那么我希望表单在下次打开时被修改。那可能吗。

我知道onOpen()和onSubmit()中的代码没有修改表单的权限。所以我做了我自己的modifyForm()函数,并在From-Form On-​​Submit中添加了一个触发器。还是行不通。

当我将触发器设置为From-Form On-​​Open时,代码DID工作,但只有当我关闭表单并重新打开它进行编辑时。 - 这种行为被记录在案。所以,再次,我正在寻找一种方式,每次运行表单,或每次提交表单时,都会动态修改表单。

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

    var imgURL = "http://whatever.com/someimg.jpg"; 
    var img = UrlFetchApp.fetch(imgURL); 
    // i first check that there is an image item in the current form and then 
    var imgItem = form.getItems(FormApp.ItemType.IMAGE)[0]; 
    imgItem.setImage(img); 

    var keyword = "aaaa"; //getKeyword(); // some text returning function 
    var items = form.getItems(); 
    for (i=0; i<items.length; i++){ 
     var title = items[i].getTitle(); 
     title = title.replace("kkkk", keyword); 
     items[i].setTitle(title); 
    } 

    return form; 
} 

感谢您的任何帮助,您可以给!

回答

0

仅在谷歌表单上不可能。

所以我的解决方案是预先创建四个存储的表单副本,预先替换“kkkk”关键字,所有将转到相同的电子表格,但不同的工作表,并在一个单独的网站,我决定在python窗体的副本通过重定向提供给用户。

我必须存储某种标识,以便用户不会得到两种类型的表单(但这是一个单独的问题)。