2013-02-11 100 views
2

我是新來的谷歌的Google Apps腳本的世界,我想創建一個基本的UI爲我的最終用戶查詢數據(存儲在谷歌電子表格),並在格式化的顯示數據/用戶友好的方式。獲取文本框的值

因爲我想開始簡單並添加組件,因爲我學習Apps腳本我決定創建一個基本表單,允許我在文本框中輸入文本,然後將該值分配給標籤(我認爲在創建基本表單組件和檢索/分配值方面將是一個簡單的練習)。

不幸的是,絆腳石我跑進是不存在的getText()或TextBox.getValue()函數。我嘗試通過在線論壇/谷歌等尋找解決方法,但我沒有嘗試似乎工作(先前的搜索引導我在事件處理程序中進行處理)。

我的問題是這樣的。如果我有一個文本框('textBox1')和一個按鈕('button1')和一個標籤('label1')。如何讓我的web應用程序將我在textBox1中輸入的值分配給label1,當我點擊button1時?

我意識到這可能是最根本的問題,我知道它已經被問過....但是似乎無論我通過這些舊文章有多難挖,我不能推測什麼應該是一個簡單的一點點的代碼。

在此先感謝。

+0

你沒有搜索得很好......一個簡單的搜索在這個論壇上用gas標籤返回了幾十個結果......例如[this one](http://stackoverflow.com/questions/14739464/google-apps-script-get-textbox-value-insert-into-database):簡單明瞭! – 2013-02-11 16:47:04

回答

1

假設你有代碼看起來像這樣:

var textbox = app.createTextBox().setName("textboxName"); 
var buttonHandler = app.createServerHandler("updateLabelText").addCallbackElement(textbox); 
var button = app.createButton("Click me").addClickHandler(buttonHandler); 
var label = app.createLabel().setId("label"); 

然後在你的函數:

function updateLabelText(e) { 
    var app = UiApp.getActiveApplication(); 
    app.getElementById("label").setText(e.parameter.textboxName); 
    return app; 
} 

所以要注意的事情:

  1. 按鈕處理程序給出的您在代碼中的其他位置定義的函數的名稱。
  2. 按鈕處理程序也必須被賦予一個「回調元素」。如果要讀取函數中該元素的值,則這是必需的。您可以添加面板作爲回調元素,該面板上的任何內容都將添加到回調中。回調元素
  3. 值通過e.parameter傳回。屬性名稱是元素的名稱。例如:e.parameter.textboxName
  4. 標籤需要一個ID,這樣就可以從你的其他功能引用它。
+0

爲了迴應您的「絆腳石」,應用程序腳本要求您明確地將值傳遞迴腳本。腳本在Google的服務器上運行,所以他們不知道文本框的價值,除非你告訴他們它是什麼。 [請閱讀此處的文檔](https://developers.google.com/apps-script/uiapp#ServerHandlers)。 – 2013-02-11 16:41:14

+0

感謝您的快速響應!我嘗試了我認爲的那種方法,但我的問題是我回來的文本值是以「未定義」的形式出現的。這是我的當前代碼: – user2061929 2013-02-11 16:45:10

+0

功能的doGet(){ VAR應用= UiApp.createApplication(); app.add(app.loadComponent(「studentLookup01」)); var handler = app.createServerClickHandler('testGetFunction'); 處理程序。addCallbackElement(app.getElementById( 'sNameEntryBox')); app.getElementById('Button1')。addClickHandler(handler); return app; } – user2061929 2013-02-11 16:45:44