我正在尝试改进电子表格中的一些内容,为此,我需要使用html文件(index1.html)以形式从用户处获取信息。所有信息都在我的gs文件(file.gs)中使用function itemAdd(form)
。
一切正常但后来我尝试为另一个html文件(index2.html)中的另一个问题创建一个新的表单。使用相同的技术,function itemAdd(form)
中使用了所有信息,这就是问题所在。
当我想使用第一个html文件或第二个时,gs文件无法区分2 itemAdd ...这是正常的,因为我有2个具有相同名称的函数(itemAdd(form)
),我的问题是知道我无法更改itemAdd
和表单名称,如何做2个不同的功能!我试图分成2个不同的gs文件,但我读到谷歌正在将所有gs文件编译成一个,因此无效。我还尝试使用 form2 更改表单索引2但不起作用...我想解决方案是在html文件中的某个地方而且它超出了我在html中的技能。
为了尽可能让你理解,这里是我问题的简化示例:
Code.gs
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu('Form 1')
.addItem('Get info 1', 'test1')
.addToUi();
SpreadsheetApp.getUi()
.createMenu('Form 2')
.addItem('Get info 2', 'test2')
.addToUi();
}
function test1() {
var html = HtmlService.createHtmlOutputFromFile('index1.html')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi()
.showModalDialog(html, 'Give the infos);
}
}
function itemAdd(form) {
//all the things I want to do with the infos given
with the form in index 1
}
function test2() {
var html = HtmlService.createHtmlOutputFromFile('index2.html')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi()
.showModalDialog(html, 'Give the infos);
}
}
function itemAdd(form) {
//all the things I want to do with the infos given
with the form in index 2
}
index1.html
<html>
<head>
<base target="_top" >
</head>
<form>
Info 1 :
<input type="text" name="i1">
<br><br>
Info 2 :
<input type="text" name="i2">
<br>
<input type="button" value="Ajouter"
onclick="google.script.run
.withSuccessHandler(google.script.host.close)
.itemAdd(this.parentNode)" />
</form>
</html>
index2.html
<html>
<head>
<base target="_top" >
</head>
<form>
Info 3 :
<input type="text" name="i3">
<br><br>
Info 4 :
<input type="text" name="i4">
<br>
<input type="button" value="Ajouter"
onclick="google.script.run
.withSuccessHandler(google.script.host.close)
.itemAdd(this.parentNode)" />
</form>
</html>