Google apps script 防止双击google应用程序脚本

Google apps script 防止双击google应用程序脚本,google-apps-script,google-sheets,spreadsheet,Google Apps Script,Google Sheets,Spreadsheet,当我制作时,双击提交的表单两次。它会创建重复的行。如何防止双击 谢谢大家! function doGet(e) { //Logger.log( Utilities.jsonStringify(e) ); if (!e.parameter.page) { // When no specific page requested, return "home page" return HtmlService.createTemplateFromFile('employee').ev

当我制作时,双击提交的表单两次。它会创建重复的行。如何防止双击

谢谢大家!

function doGet(e) {
  //Logger.log( Utilities.jsonStringify(e) );
  if (!e.parameter.page) {
    // When no specific page requested, return "home page"
    return HtmlService.createTemplateFromFile('employee').evaluate()
    .setTitle('care backup').setSandboxMode(HtmlService.SandboxMode.NATIVE);
  }
  // else, use page parameter to pick an html file from the script
  return HtmlService.createTemplateFromFile(e.parameter['page']).evaluate()
  .setTitle('care').setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

我没有测试过这个,但只是一个选项-也设置了一个基于时间的触发器,以便每隔一段时间运行函数重置

var-recentSubmit=0;
函数doGet(e){
//Logger.log(Utilities.jsonStringify(e));
如果(recentSubmit=0){
如果(!e.parameter.page){
var-recentSubmit=1;
//当没有请求特定页面时,返回“主页”
返回HtmlService.createTemplateFromFile('employee').evaluate()
.setTitle('care backup').setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
//否则,使用页面参数从脚本中选择html文件
返回HtmlService.createTemplateFromFile(e.parameter['page'])。evaluate()
.setTitle('care').setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
Logger.log(“最近提交了一个表单,稍后再试…”);
}
函数重置(){
var-recentSubmit=0;
}
您可以尝试使用。它可以禁用提交按钮。它已被弃用,但目前仍然有效

完整的代码实现示例可在以下内容中找到:

单击后,按钮变灰


我不希望按钮被禁用。我只是不想双击,我如何在HtmlService.createTemplateFromFile上支持这一点?
function onOpen() {

  var app = UiApp.createApplication();
  app.setTitle('My Title');
  app.setHeight(150);
  app.setWidth(300);

  var form = app.createFormPanel();
  var flow = app.createFlowPanel();

  flow.add(app.createHidden("action", 'action'));
  flow.add(app.createLabel('My Label'));

  //Submit
  var submit = app.createButton('Run', app.createServerHandler('notif').addCallbackElement(form)).setId('run');
  var cliHandler = app.createClientHandler().setEnabled().setEnabled(false);
  submit.addClickHandler(cliHandler);
  flow.add(submit);

  form.add(flow);
  app.add(form);
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  spreadsheet.show(app);

};

function notif(){  
  //DO NOTHING. JUST SHOW THE button is DISABLED.
}