7

ユーザーが送信をクリックしたときに、すべての必須フィールドをエラーとしてマークしたいと思います。

エラーのあるコントロールのスタイルを設定するために、input.ng-dirty.ng-invalid を使用しています。だから私が欲しいのは、ユーザーがフォームを送信するときに、必要なコントロール(またはすべてのコントロール..それは私にとって同じです)に ng-dirty を設定することです。

検証は機能しています。私がしようとしていることが間違っている可能性がある理由は理解していますが、複雑すぎて正しくないと思うことを除いて、同じ効果を得る他の方法が見つかりませんでした.

私が試したのは:

<div ng-app>
    <form novalidate>
        <input name="formvalue" type="text" ng-model="formvalue" required />
        <input type="submit" />
    </form>
</div>

http://jsfiddle.net/yq4NG/

4

1 に答える 1

8

ラップしてjsfiddleにangularを追加することから始めましょう

<div ng-app>...</div>

http://jsfiddle.net/yq4NG/1/

デフォルトでは、必須フィールドは入力時に検証されます (ダーティ)。入力の前に送信時にそれらを検証したい場合 (元の状態)、元のフィールドをチェックしてダーティにする関数を送信ボタンで実行できます。

それが私が例で行ったことです: http://jsfiddle.net/yq4NG/6/

カスタム フォーマッタとバリデータを使用して再利用可能なソリューションを構築することもできますが、これは簡単なオンオフ ソリューションです。

編集:

クラスだけを使用して再びシンプルに: http://jsfiddle.net/yq4NG/8/

EDIT [コメントで@XMLilleyが提案したように]:

angular は、 $ $setDirty()viewValue$setPristine()を. 何も変更しませんが、手動で各フィールドに入力し、何も変更せずに値をいじったユーザーをシミュレートします。$dirty$modelValue$pristine

于 2013-08-20T00:13:21.733 に答える