我浏览了很多有关我的问题的文章,但仍然无法解决我的问题。我正在尝试在侧边栏中创建一个表单,其中的条目将与其他(隐藏)字符串连接以“生成”完整的 URL,然后将该 URL 发布到事件工作表中的列中。我能够显示侧边栏和表单,但此后我似乎无法再做其他任何事情。当我单击“提交”时,侧边栏变为空白,没有任何反应。
这是我的 Code.gs:
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Custom Menu')
.addItem('Show sidebar', 'showSidebar')
.addToUi();
}
function showSidebar() {
var html = HtmlService.createHtmlOutputFromFile('Form')
.setTitle('Link Generator')
.setWidth(300);
SpreadsheetApp.getUi()
.showSidebar(html);
}
function processForm(form) {
var result = "https://somelink.com/checkout/term?key="+form.partkey+"&metadata=%7B%22morelink%22%3A"+form.cid+"%7D&p_sheet="+form.psheet;
SpreadsheetApp.getActiveSheet().getActiveCell().setValue(result);
Logger.log(form)
}
这是我的 Form.html:
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
<script>
function handleFormSubmit(formObject) {
google.script.run.processForm(
{
partkey: formObject.getElementById("partkey").value,
cid: formObject.getElementById("cid").value,
psheet: formObject.getElementById("psheet").value
});
}
</script>
<form id="myForm" onsubmit="handleFormSubmit(this)">
Part Key: <input type="text" name="partkey" id="partkey" required><br/>
CID: <input type="text" name="cid" id="cid" required><br/>
PSheet: <input type="text" name="psheet" id="psheet" required><br/>
<input type="submit" value="Submit" />
</form>
<div id="output"></div>
<p>
<input type="button" value="Close" onclick="google.script.host.close()" />
请注意,我真的是 JavaScript 和所有编码方面的新手。
最佳答案
能够遵循@I'-'I指导并查看此documentation
我将其添加到我的 html 文件中,它解决了我的问题:
function preventFormSubmit() {
var forms = document.querySelectorAll('form');
for (var i = 0; i < forms.length; i++) {
forms[i].addEventListener('submit', function(event) {
event.preventDefault();
});
}
}
window.addEventListener('load', preventFormSubmit);
function handleFormSubmit(formObject) {
google.script.run.processForm(formObject);
}
关于javascript - 尝试通过 Google 应用脚本将表单条目(从侧边栏)传递到 Google 表格中的特定列/单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52933559/