0

1.Textbox: .validateNotNumber(TextBox) を使用している間、TextBox は英数字を受け入れますが、これは当てはまりません。これは、テキスト ボックス内に 'abc1234' の名前のみを含める必要があるためです。'abcd' のみを受け入れる必要があります。また、テキストボックスが keyuphandler を使用して NUMBERS のみを処理する場合、現在の動作である 'a1234' ではなく '1234' のみを受け入れる必要があります。「a1234」を受け入れます。つまり、最初の文字は適切に検証されません。「a」を入力すると検証されませんが、「a1234」を入力すると、最初の数字の後に正しく検証されます。つまり、の i/p の後にのみエラーがスローされます。 NUMBER型のテキストボックスエリアの2文字目!

function doGet()
{
  var app = UiApp.createApplication();
  var panel = app.createVerticalPanel();
  var grid = app.createGrid(11, 10).setId('maingrid');

  var nameLabel = app.createLabel("Name:");
  var nameTextBox = app.createTextBox().setName('name').setId('name');
  var nameRequiredLabel = app.createLabel("*").setId('namerequired').setStyleAttribute("color", "red");

  var requiredFieldLabel = app.createLabel("*-Required Field").setId('requiredfield').setStyleAttribute("color", "red");

  grid.setWidget(0, 0, nameLabel).setWidget(0, 1, nameTextBox).setWidget(0, 2, nameRequiredLabel)
    .setWidget(9, 2,requiredFieldLabel);

  var invalidText=app.createClientHandler().validateNumber(nameTextBox)
      .forTargets(nameTextBox).setStyleAttribute("color", "red")
      .forTargets(nameRequiredLabel).setText('Please Enter a Valid Name.').setStyleAttribute("color", "red").setVisible(true);
  var validText=app.createClientHandler().validateNotNumber(nameTextBox)
      .forTargets(nameTextBox).setStyleAttribute("color","black")
      .forTargets(nameRequiredLabel).setText('*').setStyleAttribute("color", "red").setVisible(true);

  nameTextBox.addKeyUpHandler(invalidText).addKeyUpHandler(validText);

  panel.add(grid);
  app.add(panel);
  return app;
}

注: .validateInteger(TextBox) と .validateNotInteger(TextBox) も使用しましたが、上記と同じ o/p (英数字) を与えすぎています。

2.DateBox: DATES 形式のみを受け入れ、DATE を選択した後に他の文字を入力することはできません。Freg。DATE '14-08-2012' を選択すると、'14-08-2012abc123' のように、この長さを超える他の文字を受け入れることはできません。 DATE フォーマット n 単なる DATE+TEXT ではありません。誤って、ユーザーが不要なテキストを DATE ボックスに入力する可能性がありますが、これは避ける必要があるかもしれません! この問題を処理するには、「.validateDateLength()」が必要になる場合があります。

3. ドロップ ダウン ボックス: どのドロップ ボックスでも、オプション「SELECT」は、使用したドロップ ダウン リストから必要なオプションを選択するように促す最初のオプションです。 ")、ユーザーがいずれかのオプションを選択しているかどうかを確認します。つまり、ユーザーがドロップダウン ボックスから何かを選択したことを確認したいということです。ところで、Matches を検証していないようです。

4. チェックボックス、ラジオボタン: これらの 2 つのコントロールについて、ユーザーがラジオまたはチェックボックスのいずれかを選択したことを確認したいだけです。これらの特定のラジオがユーザーによって選択されていない場合、コントロールはエラーを渡します。 「PLZ SELECT THE RADIO/CHECK BOX OPTION TO PROCEED FURTHER」と言っています。これを行う正しい方法は何ですか?

例えば。脚本

var valid = app.createClientHandler()
                 .validateNumber(number)
                .validateNotInteger(text)
                 .validateEmail(email)
                 .validateNotMatches(listbox, 'select')
                 .forTargets(submit).setEnabled(true)
                 .forTargets(number,text,email).setStyleAttribute("color","black")
                 .forTargets(numberrequired,textrequired,emailrequired).setText('*')
                 .setStyleAttribute("color","red").setVisible(true);

上記のコードを「SUBMIT」ボタンの有効化と無効化の概念に使用しました。これ自体で、ListBox は「SELECT」オプションを正しく検証していません。

したがって、基本的に、これらすべての検証が適切に機能するようにしたいので、上記のすべてのコントロールがチェック/検証されるまで、「送信/保存」を有効にして、ユーザーがすべてのオプションを適切に入力/選択したことを確認します &送信ページに進むために必要な形式です。

うまくいけば、私は明確です。どこかで間違っている/不明な場合は、遠慮なく尋ねてください!

ガイドしてください、よろしくお願いします、chocka。

4

1 に答える 1

0

addKeyPressHandler はハンドラーのタイプが間違っているのではないかと思います - フォーカス スタイルのハンドラーがあります。しかし、はい、コードは多かれ少なかれ正しいように見えます。

于 2012-09-05T03:33:23.573 に答える