2012-07-05 82 views
3

我對google-apps-script非常陌生。我遇到這個錯誤「TypeError:找不到函數getValue在對象通用」,我不明白爲什麼。遇到的錯誤:TypeError:無法在對象中找到函數getValue通用

下面是代碼:

function doGet(e) { 


    var app = UiApp.createApplication(); 
    app.setTitle("My first application"); 

    var vPanel = app.createVerticalPanel(); 

    var hPanel3 = app.createHorizontalPanel(); 
    hPanel3.add(app.createLabel("Text")); 
    var textArea = app.createTextArea().setId('theText').setName('theText'); 
    //textArea.setName("textArea"); 

    hPanel3.add(textArea); 
    vPanel.add(hPanel3); 

    var hPanel4 = app.createHorizontalPanel(); 
    var button = app.createButton("Save"); 
    var handler = app.createServerHandler('onClick'); 
    handler.addCallbackElement(textArea); 
    button.addClickHandler(handler); 
    hPanel4.add(button); 
    vPanel.add(hPanel4); 

    var label = app.createLabel().setId('label').setText('tata'); 
    //label.setName("label"); 

    var hPanel5 = app.createHorizontalPanel(); 
    hPanel5.add(label); 
    vPanel.add(hPanel5); 

    app.add(vPanel); 

    return app; 

} 

function onClick(e) { 
    var app = UiApp.getActiveApplication(); 
    // ERROR occurs here when the button is clicked 
    var text = app.getElementById('theText').getValue(); 

    Logger.log(text); 

    app.getElementById('label').setValue(e.parameter.textArea + ' toto'); 
    //label.setText(textArea.getValue()); 

    return app; 
} 

我已經改變textarea的姓名和身份證但沒有任何工程。

感謝您的幫助!

變化由

var text = e.parameter.theText; 

Ë

回答

4

TextArea類沒有的getValue方法的價值。它的值作爲參數傳遞給處理程序。這裏是一個演示它如何工作的示例。

function doGet(e) { 
    var app = UiApp.createApplication(); 
    var panel = app.createFlexTable(); 
    panel.setWidth('100%'); 
    var btn = app.createButton().setId('btn').setText('Click Me'); 
    var textArea = app.createTextArea().setName('textArea').setValue('Text'); 
    var handler = app.createServerHandler('onBtnClick'); 
    handler.addCallbackElement(panel); 
    btn.addClickHandler(handler); 
    panel.setWidget(0, 0, btn); 
    panel.setWidget(1, 0, textArea); 
    app.add(panel); 
    return app; 
} 

function onBtnClick(e) { 
    var app = UiApp.getActiveApplication(); 
    var btn = app.getElementById('btn'); 
    var textAreaValue = e.parameter.textArea; 
    btn.setText(textAreaValue); 
    return app; 
} 
+0

我雖然它應該有TextArea中的getValue或getText方法。 我已經將addCallbackElement直接附加到文本區域,但它不起作用。 它現在適用於當我使用父面板代替。 感謝您的幫助。 – user1503721 2012-07-05 12:30:04

2

var text = app.getElementById('theText').getValue(); 

是您的形式價值
您使用固定的setName名稱來選擇你想獲得其中E的參數變量

1

如果你參考t他documentation for textArea,對於textArea沒有像getValue()這樣的方法。作爲卡特曼回答你可以通過callbackElement它使用名稱的文字區域作爲參數(除非你想setValue()用別的東西的ID是沒有必要的)

相關問題