在2个不同的函数中使用itemAdd为2个不同的<form> - Google Script

时间:2018-03-08 13:25:50

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

我正在尝试改进电子表格中的一些内容,为此,我需要使用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>

0 个答案:

没有答案