0

我有一个使用 UI 服务(不是 HTML 服务)编写的 Google Apps 脚本应用程序,并且该应用程序嵌入在 Google 站点中。

我有一个包含 15 个值(3x5)的网格。我可以使用 clientHandler 来验证每个 textBox 中的值是否为整数。

我想确保在启用提交按钮之前正确设置了所有 15 个值。

做这个的最好方式是什么?

显然,只是切换按钮的 .setEnabled 属性 onChange 并不好,就好像一个小部件禁用了按钮,但下一个小部件是一个有效的整数,它会重新启用按钮。

我考虑过使用 serverHandler,但认为这可能会很慢且不可靠。如果可以的话,我想保留它的客户端。感觉应该是可能的,但我就是无法解决。我错过了什么?

欢迎所有建议。谢谢。

4

1 回答 1

0

一旦所有字段都是整数,这将启用提交,但需要添加更多内容以处理在首次通过验证后值可能变回非整数的情况。

function doGet() {
  var app = UiApp.createApplication();
  var field1 = app.createTextBox();
  var field2 = app.createTextBox();
  var field3 = app.createTextBox();
  var submit = app.createButton('SUBMIT').setEnabled(false);

  var handler = app.createClientHandler().validateInteger(field1)
  .validateInteger(field2).validateInteger(field3)
  .forTargets(submit).setEnabled(true);

  field1.addValueChangeHandler(handler);
  field2.addValueChangeHandler(handler);
  field3.addValueChangeHandler(handler);

  app.add(field1).add(field2).add(field3).add(submit);
  return app;
}

部署的应用程序

Corey 的UiApp 帖子在这方面很有帮助。

于 2013-08-11T04:07:46.633 回答