2012-06-20 2 views
0

Почему app.getElementById('myTextBox').setValue('default') Работает в showDialog(), но не работает в respondToSubmit(e)?проблемы с заданными параметрами объекты запроса

function showDialog() { 
    var app = UiApp.createApplication(); 
    var panel = app.createVerticalPanel(); 

    var textBox = app.createTextBox(); 
    textBox.setName('myTextBox').setId('myTextBox'); 
    app.getElementById('myTextBox').setValue('default'); 

    var button = app.createButton(Modify'); 
    panel.add(textBox); 
    panel.add(button); 

    var clickHandler = app.createServerClickHandler("respondToSubmit"); 
    button.addClickHandler(clickHandler); 
    clickHandler.addCallbackElement(panel); 

    app.add(panel); 
    var doc = SpreadsheetApp.getActive(); 
    doc.show(app); 
} 

function respondToSubmit(e) { 
    var app = UiApp.getActiveApplication(); 
    app.getElementById('myTextBox').setText('Modifed'); 
} 

ответ

2

Добавить

return app; 

в конце вашей функции respondToSubmit

+0

Спасибо Srik, это было настолько очевидно, что я Жду» t see :-) –

+0

спасибо! мой ум был сломан в течение двух последовательных дней)) – Poroh

0

в одном случае вы используете setText(), в другом используете setValue() ... разве вы не заметили?

Кроме того, когда вы находитесь в одной и той же функции, в которой вы создаете элемент вам не нужно использовать getElementById() вы можете просто использовать textBox.setValue() поскольку TextBox является переменной, которая содержит element- в getElementById только используется для вызова элемента от другой функции.

+0

я знаю) я делаю это для тестирования 'getElementById()' в различных условиях) – Poroh

Смежные вопросы