2017-05-01 56 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