2017-05-27 17 views
0

入力フィールドにタッチしてまだ空の場合のみ、divを表示しようとしています。AngularJS - タッチして空白の場合のみ表示div

次のコードを試しましたが、divが表示されません。何らかの理由で、私が思った触った状態を読むことができません。

私が間違っていることは何ですか?

<div class="col-xs-12 mainbox" > 
<form name="loginForm"> 
    <div class="spacing"></div> 
     <h5>Please input your data:</h5> 
     <input ng-model="vm.username" type="text" placeholder="Username" class="form-control input-md"> 
     <div class="spacing"> 
      <div class="alert alert-danger" ng-if="!vm.username && vm.username.$touched"> 
       Please put your username! 
      </div> 
     </div> 
     <input id="textinput" name="textinput" type="text" placeholder="Κωδικός" class="form-control input-md"> 
     <div class="spacing"></div> 
     <button id="singlebutton" name="singlebutton" class="btn btn-info btn-sm pull-right">Είσοδος</button> 
</form> 

 

PS。 $ touch条件を削除すると、入力されたユーザー名が空の場合のみdivが完全に表示されます。

+0

$タッチで何をしようとしていますか? ngMouseoverまたはngMouseup ...またはそれらのイベントのいくつかを試してみて、それらのいずれかにtrue/falseになる変数をバインドしてから、その変数をng-if ...で使用してみてくださいどうしようもない – Marko

+0

@Marko入力フィールドに触れたときに警告を表示してdivを表示しようとしましたが、何も入力しないままdivを表示しました。 –

+0

ええ、しかし、 'タッチ'イベントは何ですか?そのちょうどangularJSのWebアプリケーションなら、それではngMouseUp ...だから、そのイベントのtrue/falseに変わる変数をバインドするロジックを使うことができます – Marko

答えて

0

ルックは、あなたのタスクを達成するために、あなたの入力コントロールに名前プロパティを設定する必要があります。 はまた、あなたは$がloginForm.userNameのように触れた。$が

<form name="loginForm"> 
<div class="spacing"></div> 
    <h5>Please input your data:</h5> 
    <input ng-model="vm.username" name="userName" type="text" placeholder="Username" class="form-control input-md"> 
    <div class="spacing"> 
     <div class="alert alert-danger" ng-if="!vm.username && loginForm.userName.$touched"> 
      Please put your username! 
     </div> 
    </div> 
    <input id="textinput" name="textinput" type="text" placeholder="Κωδικός" class="form-control input-md"> 
    <div class="spacing"></div> 
    <button id="singlebutton" name="singlebutton" class="btn btn-info btn-sm pull-right">Είσοδος</button> 

はそれが役に立てば幸いに触れアクセスする必要があります!

+0

完璧な答え、そのように動作します。ですから、ng-modelで触れられた$を使用することはできませんが、名前属性のみで正しいですか? –

+0

あなたは正しいです。詳細については、https://docs.angularjs.org/guide/formsをご確認ください。あなたもupvoteすれば素晴らしいだろう;) –

0

入力フィールドにng-focusng-blurイベントを使用できます。このpen

+0

Yap、まさに私がコメントで意味していたものです。使用したいマウスイベントを特定してください – Marko

+0

このコードの問題は、入力する前に内部をクリックします。メッセージは、フィールドを離れてまだ空の場合にのみ表示されます。 –

関連する問題