2017-05-01 70 views
1

当我双击表单提交两次。它会创建重复的行。我怎样才能防止双击?防止双击谷歌应用程序脚本

谢谢!

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); 
} 

回答

0

我没有测试过这一点,但只是一个选项 - 还设置了基于时间触发运行功能重置每隔一段时间?

var recentSubmit = 0; 
 

 
function doGet(e) { 
 
    //Logger.log(Utilities.jsonStringify(e)); 
 
if (recentSubmit = 0){ 
 
    if (!e.parameter.page) { 
 
    var recentSubmit = 1; 
 
    // 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); 
 
    } 
 
    Logger.log("Submitted a form to recently, try again later..."); 
 
} 
 

 
function reset() { 
 
var recentSubmit = 0; 
 
}

0

您可以尝试使用createClientHandler.forEventSource().setEnabled(false)。它可以禁用提交按钮。它已被弃用,但它现在仍然有效。

全部代码实现样品在此SO post发现:

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. 
} 

按钮变灰点击..

enter image description here

+0

我不想按钮被禁用后。我只是不想双击,我怎么能在HtmlService.createTemplateFromFile上支持这个? – Jona