0

UI サービス (HTML サービスではなく) を使用して作成された Google Apps Script アプリケーションがあり、そのアプリは Google サイトに埋め込まれています。

15 個の値 (3x5) のグリッドがあります。clientHandler を使用して、各 textBox の値が整数であることを検証できます。

[送信] ボタンを有効にする前に、15 個すべての値が正しく設定されていることを確認したいと思います。

これを行う最善の方法は何ですか?

明らかに、ボタンの .setEnabled プロパティ onChange をトグルするだけでは良くありません。1 つのウィジェットがボタンを無効にするかのように、次のウィジェットは有効な整数であり、ボタンを再び有効にします。

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 に答える