0

好的,所以我正在使用谷歌应用程序 GUI 构建器,并且我定义了一个简单的文本框小部件,ID 和名称属性都设置为“TextB1”。

我还定义了一个按钮。

我已经为按钮鼠标单击事件添加了一个处理程序,以及设置为“TextB1”的回调元素。

在我的处理程序函数中,我有代码:

Browser.msgBox(e.parameter.TextB1);

当我运行所有内容时,单击按钮并调用处理程序,它会点击这一行并显示“未定义”。...

我尝试了不同类型的小部件的多种可能性,使用复制和粘贴来确保没有错别字等,但绝对没有任何效果。最后,我将所有内容简化为这个简单的示例,将 id 和 name 设置为相同的值,以避免我在错误的地方使用错误的引用。

但即使有这个简单的例子,我也不知道我做错了什么。我不是一个真正的 javascript 程序员,虽然我有超过几十年的 windows/c/c#/unix 等,所以我真的认为这将是非常微不足道的,但我完全陷入了困境(或者我的代码可能完全有缺陷;) !) ...无论哪种方式,如果有人想指出我的方式的错误,并发现错误,我将非常感激,因为它让我发疯。

有趣的是,其他人也遇到过这个问题,但除了指出需要设置小部件的 Name 属性和 Id 之外,还有一些人说问题就消失了……是间歇性错误还是我在做什么蠢事?

欢迎任何帮助或对其他明显错误的建议......

4

1 回答 1

1

我遇到了同样的问题,但是感谢您关于设置“名称”属性的提示,我让它工作了。

我也在使用 GUI 构建器。我复制了这个示例代码:

https://developers.google.com/apps-script/class_textbox

到 GUI builder 中的等价物,但改变了:

app.getElementById("label").setText(eventInfo...

至:

app.getElementById("label").setText(Utilities.jsonStringify(eventInfo));

这可以更深入地了解实际传递给回调的内容。而且我无法使用 msgBox,因为我的是 webapp。有人说您需要使用基本按钮(就像我和本例中一样)而不是提交按钮。确保标签足够宽以显示结果。希望这可以帮助。

于 2013-02-27T12:44:41.080 回答