[解決済み] ユーザがフィールドを残した後にフィールドを検証する
質問
AngularJSで、私は
ng-pristine
または
ng-dirty
を使用して、ユーザーがフィールドに入力したかどうかを検出します。しかし、私は、ユーザーがフィールド領域を離れた後にのみ、クライアントサイドの検証を行いたいと考えています。これは、ユーザーが電子メールや電話などのフィールドを入力すると、完全な電子メールの入力を完了するまで常にエラーがスローされるため、最適なユーザーエクスペリエンスとは言えないからです。
UPDATEです。
Angularはカスタムblurイベントを同梱するようになりました。 https://docs.angularjs.org/api/ng/directive/ngBlur
どのように解決するのですか?
Angular 1.3ではng-model-optionsが追加され、オプションに
{ 'updateOn': 'blur'}
を設定することができます。また、タイピングが速すぎる場合や、高価な DOM 操作を節約したい場合 (例えば、モデルが複数の DOM に書き込んでいて、キーを押すたびに $digest サイクルを実行したくない場合) には、デバウンスも可能です。
https://docs.angularjs.org/guide/forms#custom-triggers と https://docs.angularjs.org/guide/forms#non-immediate-debounced-model-updates
<ブロッククオートデフォルトでは、コンテンツに変更があった場合、モデルの更新と フォームのバリデーションが行われます。この動作をオーバーライドするには ngModelOptions ディレクティブを使用して、指定されたイベントのリストにのみバインドするために、この動作を上書きすることができます。 例えば、ng-model-options="{ updateOn: 'blur' }"は、コントロールがフォーカスを失った後にのみ更新とバリデーションを行います。 は、コントロールがフォーカスを失った後にのみ、更新と検証を行います。スペースで区切られたリストを使用して、複数のイベントを設定することができます。 スペースで区切られたリストを使用して、複数のイベントを設定できます。例:ng-model-options="{ updateOn: 'mousedown blur' }"。
そしてデバウンス
<ブロッククオートモデルの更新/検証を遅らせるには、ngModelOptionsディレクティブでdebounceキーを使用します。 を ngModelOptions ディレクティブで指定します。この遅延は パーサー、バリデーター、そして $dirty や $pristine のようなモデルフラグにも適用されます。
例えば、ng-model-options="{ debounce: 500 }"は、トリガーする前に最後のコンテンツ変更から半秒間待ちます。 モデル更新とフォーム検証をトリガーする前に、最後のコンテンツ変更から半秒待ちます。 フォームのバリデーションを行います。
関連
-
[解決済み】Angular 2: formGroup は FormGroup のインスタンスを期待します。1つを渡してください。
-
[解決済み] Angular 2: formGroup は FormGroup のインスタンスを期待します。1つを渡してください。
-
[解決済み] JSFでフォームアクションを定義する方法は?
-
[解決済み] 電子メールアドレスに使用できる文字は何ですか?
-
[解決済み】HTMLフォームのaction属性に空のURLを使用するのは良い方法ですか?(action="")
-
[解決済み】GETメソッドとPOSTメソッドはいつ使うべきですか?両者の違いは何ですか?
-
[解決済み】チェックしたラジオボタンのラベルをCSSセレクタで指定する方法
-
[解決済み】curlを使用してmultipart/form-dataをPOSTする正しい方法は何ですか?
-
[解決済み] HTML5 の input type="text" と input type="search" の比較
-
[解決済み] ロボットが自動的にフォームに入力するのを防ぐには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 電子メールアドレスに使用できる文字は何ですか?
-
[解決済み】Postman Chromeです。form-data、x-www-form-urlencoded、rawの違いは何ですか?
-
[解決済み】GETメソッドとPOSTメソッドはいつ使うべきですか?両者の違いは何ですか?
-
[解決済み】HTML5の "required "属性をチェックボックスのグループに使用する?
-
[解決済み】Chromeの開発ツールのネットワークタブに表示される「リクエストペイロード」と「フォームデータ」の違いとは?
-
[解決済み] AngularJSでフォームが無効なときに送信ボタンを無効にする
-
[解決済み] 生年月日を入力するのに最適なUIは?[クローズド]
-
[解決済み] Enterキーでモーダルダイアログが表示されないようにする
-
[解決済み] ロボットが自動的にフォームに入力するのを防ぐには?
-
[解決済み] フォームの再送信を防止する