2017-03-12 15 views
0

ログインフォームを作成しようとしていますが、エラーメッセージに問題があります。部門は非表示にする必要がありますが

フォームが送信されない場合、またはフォームが送信されてパスワードが有効な場合、2番目のdivを非表示にします。以下

HTMLが動作していない:

<div class="form-input"> 
    <input #password type="password" name="password" 
    placeholder="Enter Password" required ngModel> 

    <div class="alert alert-danger" [hidden]="!form.submitted || (form.submitted && password.valid)"> 
     Please enter your password. 
    </div> 
</div> 

ページが最初にロードされたときに第二divが隠されていないが、私は有効なパスワードを入力し、送信ボタンを押した場合、それはもはや隠されています。私は間違って何をしていますか?

+0

'[hidden]'属性から '[]'を削除してください。 – Ayush

+0

しかし、あなたのパスワードをチェックする方法は間違っているか間違っていますか? –

答えて

2

FormGroupを含まないhtml inputタグを使用しています。したがって、validプロパティはありません。代わりにvalueを確認してみてください。

[hidden]="!form.submitted || (form.submitted && password.value)" 

:@Jesper !password.errors.requiredによって示唆されるようにも動作します。

それとも、有効性を確認する妥当性をチェックするコンポーネント内の機能を持っており、コンポーネントで[hidden]属性

にコールする場合:

isPasswordValid():boolean{ 
//check this.password validity and return boolean. 
} 

[hidden]属性:

[hidden]="!form.submitted || (form.submitted && isPasswordValid())" 
+0

私は関数の作成を提案しました。あなたの返信をありがとう –

+1

を更新します。はい、 'password.value'はジョブを完了します!私はちょうど '!password.errors.required'が問題を解決することも発見しました。 – Jesper

+0

ok ..嬉しいです。それが解決された場合は解決してください。 –

関連する問題