Google apps script 从Google应用程序脚本获取文本框值

Google apps script 从Google应用程序脚本获取文本框值,google-apps-script,Google Apps Script,我不熟悉谷歌的应用程序脚本,我正在尝试为我的最终用户创建一个基本的用户界面来查询数据(存储在谷歌电子表格中),并以格式化/用户友好的方式显示数据 因为我想在学习应用程序脚本时从简单和附加组件开始,所以我决定创建一个基本表单,允许我在文本框中输入文本,然后将该值分配给标签(我认为这是创建基本表单组件和检索/分配值的简单练习) 不幸的是,我遇到的障碍是没有getText()或TextBox.getValue()函数。我尝试通过在线论坛/谷歌等搜索来找到解决方法,但我尝试的方法似乎都不管用(之前的搜索

我不熟悉谷歌的应用程序脚本,我正在尝试为我的最终用户创建一个基本的用户界面来查询数据(存储在谷歌电子表格中),并以格式化/用户友好的方式显示数据

因为我想在学习应用程序脚本时从简单和附加组件开始,所以我决定创建一个基本表单,允许我在文本框中输入文本,然后将该值分配给标签(我认为这是创建基本表单组件和检索/分配值的简单练习)

不幸的是,我遇到的障碍是没有getText()或TextBox.getValue()函数。我尝试通过在线论坛/谷歌等搜索来找到解决方法,但我尝试的方法似乎都不管用(之前的搜索让我在事件处理程序中尝试并解决了这个问题)

我的问题是。如果我有一个文本框('textBox1')、一个按钮('button1')和一个标签('label1')。当我单击按钮1时,如何让我的web应用程序将我在textBox1中输入的值分配给label1

我意识到这可能是最基本的问题,我知道以前也有人问过……但无论我多么努力地翻阅这些旧帖子,我似乎都不知道什么应该是简单的代码


提前感谢。

假设您的代码如下所示:

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;
}
因此需要注意的是:

  • 按钮处理程序被赋予在代码中其他地方定义的函数的名称
  • 按钮处理程序还必须被赋予一个“回调元素”。如果要在函数中读取该元素的值,则需要执行此操作。您可以添加一个面板作为回调元素,该面板上的任何内容都将添加到回调中
  • 回调元素的值通过
    e.parameter
    传回。属性名是元素的名称。示例:
    e.parameter.textboxName
  • 标签需要一个ID,以便您可以从其他函数引用它
    为了响应您的“绊脚石”,应用程序脚本要求您显式地将值传递回脚本。这些脚本是在谷歌的服务器上运行的,所以除非你告诉他们文本框是什么,否则他们不知道文本框的值。感谢您的快速回复!我尝试了我认为是那种方法,但我的问题是我得到的文本值是“未定义的”。这是我当前的代码:函数doGet(){var app=UiApp.createApplication();app.add(app.loadComponent(“studentLookup01”);var handler=app.createServerClickHandler('testGetFunction');handler.addCallbackElement(app.getElementById('snamentryBox'));app.getElementById('Button1')。addClickHandler(handler);return-app;}函数testGetFunction(e){var-app=UiApp.getActiveApplication();var-sEnteredName=e.parameter.sNameEntryBox;var-sDisName=app.getElementById('snamedisplaylab');sDisName.setText(sEnteredName);app.close();return-app;}sNameEntryBox=我的文本框的ID snamedisplaylab=我要在其中显示输入文本的标签。单击按钮时,我的标签显示文本“未定义”。我对自己做错了什么感到困惑/你搜索得不太好。。。在这个论坛上用gas标签进行简单搜索,会返回几十个结果。。。例如:简单明了!