2017-09-07 8 views
2

入力ユーザー名またはパスワードが空の場合はどのように項目をhasErrors配列に追加でき、入力が空でない場合は削除して、送信ボタンの無効なクラスを動的に有効/無効ですか?VueJS入力検証配列へのプッシュ/ポップアップ

<form> 
    <input type="username" v-model="form.username"> 
    <input type="password" v-model="form.password"> 
    <input type="submit" :disabled="hasErrors.length > 0"> 
</form> 

<script> 
    var app = new Vue({ 
     el: '#app', 
     data: { 
      form: { 
       username = '', 
       password = '', 
       hasErrors: [] 
      } 
     } 
    }); 
</script> 

答えて

3

あなたはこのような場合のために計算されたプロパティを使用することができます。

<script> 
    var app = new Vue({ 
     el: '#app', 
     data: { 
      form: { 
       username: '', 
       password: '', 
      } 
     }, 
     computed: { 
      hasErrors: function(){ 
       var errors = []; 
       if(this.form.username == '') errors.push('username'); 
       if(this.form.password == '') errors.push('password'); 
       return errors; 
      } 
     } 
    }) 
</script> 

そしてちょっと、これは間違いなく動作します

<input type="submit" :disabled="hasErrors.length > 0"> 
+0

を使用しています。しかし、Vueでバグが見つかったと思います。入力タイプselect multipleを使用し、v-modelがオブジェクトの内部にある場合、最初に選択したアイテムのみがデータに保存されています。 複数のユーザー名を選択でき、v-modelの名前が "form.username"であるとします。しかし、form.usernameではなくusernameに保存すると、それは動作します –

+0

この検証プラグインを使用するhttp://vee-validate.logaretm.com/ @KaySingian – talkhabi