2

プライベートバリデーターを使用して独自の検証を処理するカスタム textInput コンポーネントを作成しました。コンポーネントの状態に応じて検証が有効になります。つまり、コンポーネントの状態が「編集」の場合に検証が有効になります。

ただし、状態が edit から変更されると、内部バリデーターは無効に設定されますが、テキストボックスの検証エラーはクリアされません - textInput にはまだ赤い境界線があり、マウスオーバーで検証エラーが発生します。私がやりたいことは、バリデーターが無効になっているときに、エラーの書式設定とエラーメッセージがテキスト入力コントロールからクリアされることです。

これを行う方法を知っている人はいますか?

                    _validatorInstance.enabled = false;
                //clear the validation errors if any
                dispatchEvent(new FocusEvent(FocusEvent.FOCUS_OUT));

何か案は?

ありがとう

ジョン

4

3 に答える 3

8

私が知る限り、エラー フィールドから errorString をクリアすると、エラーの書式設定がなくなるはずです。

myField.errorString = "";
于 2009-07-13T18:04:33.207 に答える
3

エラー フィールドから errorString をクリアするために使用されている errorString の使用に関連する問題が見つかりました。errorString が (プログラムによって) クリアされると、バリデーターにバインドされたコンポーネントは、その後の検証でエラーヒントを表示しません。

errorString の使用を ValidationResultEvent に置き換えて、次のようにプログラムで起動してください。

var evt:ValidationResultEvent = new ValidationResultEvent(ValidationResultEvent.VALID);
validatorInstance.dispatchEvent(evt); 

この問題は、4.0 SDK を使用してコンパイルされたコードで一般的ですが、4.5 SDK 以降では修正されています。

これは JIRA で報告されたバグです: http://bugs.adobe.com/jira/browse/SDK-29270

于 2012-05-02T12:52:38.227 に答える
0

errorStringを空白に設定しても、有効または無効なイベントはディスパッチされないことに注意してください。

于 2010-06-11T00:20:47.273 に答える