我想访问Google Script中所选选项的值。
我得到了这个HTML表单。有一个选项。
<form id="invoice" _lpchecked="1">
<label for="company">company:</label><br>
<input type="text" id="company" name="company" value=""><br>
<br>
<label for="user">created:</label>
<select id="user">
<option value="Radek">Radek</option>
<option value="Lucka">Lucka</option>
</select>
<input type="submit" value="send" onclick="event.preventDefault(); sendForm(this);">
</form>
表单被发送到Google Script
function sendForm(theForm){
//var invoice = document.getElementById("invoice");
//invoice.user = document.getElementById("user").value;
google.script.run.withSuccessHandler(formSent)
.processForm(document.getElementById("invoice"));
}
然后在GAS中,我可以访问表单数据。通过记录表单数据,我发现该选项没有密钥。在form
对象中有正确的值,但有一个空键。可以帮助获得GAS中的选择选项吗?我试图将user
键添加到表单数据中,但没有成功。
function processForm(form){
var result = "OK";
var data = [(new Date()).toLocaleString("cs-CZ"),
form.company,
form.user]
for (var key in form) {
Logger.log('the key is: ' + key);
Logger.log('the value is: ' + form[key]);
};
saveInvoiceData(data); // saves data to Google Sheets
return result;
}
有没有一种方法可以在IDE中使用断点进行调试?
我认为问题的原因是<select id="user">
没有使用name
属性。所以请修改如下。
发件人:
<select id="user">
收件人:
<select id="user" name="user">
注:
当您将脚本用作Web应用程序时,当脚本被修改时,请将Web应用程序重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请小心。
关于这种情况下的调试,不幸的是,在这种情况下,我认为不能直接使用脚本编辑器中的调试。例如,使用以下脚本如何?
function processForm(form){ SpreadsheetApp.openById("###").appendRow([JSON.stringify(form)]); return "ok"; }
- 使用此脚本,在提交表单时,可以确认
form
的值。由此可以发现,使用电子表格,您当前的脚本返回的对象{"":"###","company":"###"}
没有键
- 使用此脚本,在提交表单时,可以确认