删除预填充的网址表单链接中的“未定义”(来自修改后的Google费用报表脚本)

时间:2012-11-20 16:52:49

标签: url google-apps-script google-sheets

我修改了标准的Google云端硬盘费用报表系统,将其用作管理员可以批准/拒绝表单的能力和体验矩阵。 我遇到的问题是,当经理拒绝某个表单时,它会向该员工发送一个链接,并提供指向该网址预先填充的表单的链接。

但是,如果员工没有以原始格式输入值,则url会将其填充为“未定义”。

问题,我可以通过网址预先填充表单来删除或替换“未定义”值吗?

也许代码会比我更好地解释。

+ "<P><b>" + 'Please re-submit your form <a href=' + USER_FORM_URL +
'&entry_2=' + encodeURIComponent(row.forename) + '&entry_3=' +
encodeURIComponent(row.surname) + '>here</a></b>'

任何帮助都会非常感激,努力寻找“在那里”的解决方案。

汤姆

图片链接http://s11.postimage.org/dyd1olkoz/url_stack.jpg因为我是新海报。

1 个答案:

答案 0 :(得分:0)

如果费用报表电子表格中的值为空,则看起来脚本中的getObjects()函数可能会跳过向row对象添加值,稍后在sendReportToManager()中使用。因此,稍后尝试附加诸如row.bananas之类的内容(或者在表单中为空而未在对象上定义的内容)将导致将'undefined'附加到字符串中。如果你查看带有'undefined'值的表单的查询字符串,你应该在url的查询字符串中看到'undefined'。

您可以通过将encodeURIComponent(row.XXXX)个可能为空的列调用包装起来来避免这种情况:row.XXXX ? encodeURIComponent(row.XXXX) : ""

因此,请更换以下内容:

+ "<P><b>" + 'Please re-submit your form <a href=' + USER_FORM_URL + 
'&entry_2=' + encodeURIComponent(row.forename) + '&entry_3=' +

+ "<P><b>" + 'Please re-submit your form <a href=' + USER_FORM_URL + 
'&entry_2=' + (row.forename ? encodeURIComponent(row.forename) : "") + '&entry_3=' +