2016-08-19 34 views
0

私は、電子メールで使用できる入力のリストを持っています。これらの入力では、私はng-model-options="{allowInvalid: true}"の入力タグでinvaild入力を許可したいとしています。それらの電子メールは、私の機能enter()をコントローラに呼び出すサブミットボタンを押した。電子メールの妥当性確認

HTMLでは、各電子メール入力をng-model="item.text"に設定していますので、コントローラでメールをループすることができます。これが有効かどうかを確認したいところです。これどうやってするの?私はhttps://docs.angularjs.org/api/ng/input/input%5Bemail%5DmyForm.input.$validで見た

はので、私はすべての入力要素を持って、inputEle.$validを試してみました使用されるが、これは常にundefinedとして戻ってきますさ。

だから私のループの中で私は、ユーザーがそのような中に入れ、両方の生のテキストへのアクセスがあります。

[email protected]@email..com 
[email protected] 

をそして私は、どのようにその中

<input type="email" placeholder="Email" ng-model="item.text" ng-model-options="{allowInvalid: true}" class="ng-not-empty ng-dirty ng-invalid ng-invalid-email ng-invalid-remove ng-valid-email-add ng-invalid-email-remove ng-touched" style=""> 

などの入力要素へのアクセス権を持っています私のコントローラのループで電子メールを検証できますか?

おかげ

答えて

0

あなたはそれに「名前」属性を設定する必要がコントローラに入力を検査するために。たとえば、次のように

そして、コントローラにあなたが$に有効なプロパティにアクセス
<input type="email" name="email_name" placeholder="Email" ng-model="item.text" ng-model-options="{allowInvalid: true}" class="ng-not-empty ng-dirty ng-invalid ng-invalid-email ng-invalid-remove ng-valid-email-add ng-invalid-email-remove ng-touched" style=""> 

... 
if(myForm.email_name.$valid) { 
    ... 
} 
... 

例:https://jsfiddle.net/vk94weuu/2/

+0

わかりましたので、私は同じ名前を持つすべての入力のリストを持っている場合、 "email_name"のようにして、 'var emails = document.getElementsByName( 'email_name')'のようにして、 'emails'をループします。 $ valid) '? – iqueqiorio

+0

同じフォームで2つ以上の入力を同じ名前にすることはお勧めできません。それは異なった形で大丈夫ですが。入力数が一定の場合は、入力の数を異ならせてください。もしそうでなければ、あなたはこのアプローチを試みることができます:https://jsfiddle.net/vk94weuu/4/ –

+0

申し訳ありません、jsfiddleは機能しませんでした。アップデート:https://jsfiddle.net/vk94weuu/5/ –

関連する問題