2017-07-13 22 views
0

私は条件付きで

$setValidity('', false); 

または

$valid = false 

事があるのいずれかでNG-無効にNG-有効な変更することにより、特定のテキストフィールドにフォームの検証をオーバーライドしていますユーザーが通常のフォーム検証に準拠した別の値を再入力するとすぐに、上記のステートメントの効果を元に戻したいと思います。これまでのところ、上記のステートメントのいずれかを使用すると、変更は「スティック」になります。どうやって元に戻すことができますか?ありがとう。

答えて

0

ng-changeを使用して、フォーム要素をパラメータとして送信します。あなたの機能性(検証ベース)を書いてから、これを使ってください:

function 
your validation check 
if 
// value doesn't compile with normal form validation 
formelement.$setValidity("required", false); 
else 
//value that complies with normal form validation: 
formelement.$setValidity("required", true); 
+0

ここに解決策があります。ユーザーが値を再入力したときにこのメソッドを呼び出す必要があります。このイベントをこのメソッドの実行にどのように関連付けるのですか? – echobase

+0

上記のコメントは無視してください。私は書くつもりだった:あなたが言うように、ユーザーが値を再入力するときには、このメソッドをng-changeで呼び出す必要があります。しかし、どのような条件が存在するかを決定するために、anglejsフォームの検証を手動で呼び出すにはどうすればよいですか? – echobase

+0

上記の方法では、ng-change関数呼び出しでフォーム要素を送信し、上記の参照を取るために必要な方法でその有効性を再生します – tejA