2013-08-23 60 views
0

我正在嘗試編寫一個小型Google Apps腳本,以幫助用戶導航並使用Google電子表格。他們可以填寫一個小表格。除其他外,它將把它們帶到一個特定的表格。Google Apps腳本ElementCallback:「遇到錯誤:」參數「未定義。」

但是,窗體的回調似乎沒有工作。我真的不知道爲什麼。我從適用於我的教程中解除了ServerClickHandler/ElementCallBack代碼(http://www.youtube.com/watch?v=5VmEPo6Rkq4)。我修剪了腳本並嘗試使用不同的小部件和麪板。似乎沒有任何工作。這可能是我無法看到的一些愚蠢的東西。

當我單擊此腳本創建的表單中的提交按鈕時,出現以下錯誤: 「遇到錯誤:」參數「未定義。」

在我的繩索結束。已經調試了3個小時。 (新手程序員 - 請原諒我的無能)

非常感謝您的幫助。

function createIncidentDialog() { 
    var app = UiApp.createApplication().setTitle('Incident'); 
    var panel = app.createVerticalPanel(); 
    var grid = app.createGrid(3,2).setId('submissionGrid'); 

    var shortNameLabel = app.createLabel('Incident Code'); 
    var shortNameTextBox = app.createTextBox().setName('shortName').setId('shortName'); 

    var regionLabel = app.createLabel('Select Geographic Region'); 
    var radio1 = app.createRadioButton('group1', 'North').setName('north').setId('north'); 
    var radio2 = app.createRadioButton('group1', 'Central').setName('central').setId('central'); 
    var radio3 = app.createRadioButton('group1', 'South').setName('south').setId('south'); 
    var regionPicker = app.createVerticalPanel().add(radio1).add(radio2).add(radio3); 

    var submitButton = app.createButton('Submit'); 
    var submitLabel = app.createLabel("Click!"); 

    grid.setWidget(0, 0, shortNameLabel) 
    .setWidget(0, 1, shortNameTextBox) 
    .setWidget(1, 0, regionLabel) 
    .setWidget(1, 1, regionPicker) 
    .setWidget(2, 0, submitButton) 
    .setWidget(2, 1, submitLabel); 
    panel.add(grid); 
    var clickHandler = app.createServerClickHandler("writeIncident"); 
    submitButton.addClickHandler(clickHandler); 
    clickHandler.addCallbackElement(panel); 
    // assemble everything in app 
    app.add(panel); 
    var doc = SpreadsheetApp.getActive(); 
    // show the app 
    doc.show(app); 

} 

// this function responds to submit button 
function writeIncident(e) { 
var app = UiApp.getActiveApplication(); 
    var shortNameValue = e.parameter.shortName; 

    if (e,parameter.north == 1){ 
    var regionValue = "North"; 
    } 
    else if (e.parameter.central == 1){ 
    var regionValue = "Central"; 
    } 
    else if (e.parameter.south == 1){ 
    var regionValue = "South"; 
    } 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    ss.setActiveSheet(ss.getSheetByName(regionValue)); 

    return app.close(); 
}; 

回答

0

我看到你有一個錯字

if (e,parameter.north == 1){ 
    var regionValue = "North"; 
    } 

嘗試用一個點替換逗號。

+0

感謝您的接收!我還放棄了單選按鈕,因爲我似乎無法讀出它們的值(並且它們也沒有實施唯一可行的規則。) – user2709930

相關問題