2013-02-11 122 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