2017-03-07 204 views
0

我想清除所有的錯誤從vee驗證退出方法,下面的代碼似乎不工作,窗體中的錯誤仍然顯示,任何想法爲什麼?謝謝,如何清除vee-validate中的錯誤對象?

sign_out: function (e) { 
    console.log('sign me out') 
    var self = this 
    firebase.auth().signOut().then(function() { 

     console.log('sign out!')   
     self.info.email = '' 
     self.errors.clear() // clear errors object of vee-validate 

    }, function (error) { 

     console.log('sign out failed') 

    }) 
    }, 

這裏是描述在代碼中的問題的jsfiddle,當你輸入「123」,會顯示警告信息,然後當你點擊「清除」,該字段設置爲「」,和錯誤.clear(),是希望在表單中警告會消失,但它不是:

https://jsfiddle.net/8j3z82bv/1/

+0

嘗試將DOM值作爲你的電子郵件值沒有重置爲空字符串。 –

+0

如何重置dom值?其實v-model =「info.email」,我把它設置爲「」,然後errors.clear(),但仍然顯示'電子郵件是必需的'形式 – AngeloC

+0

我的想法。嘗試'self.errors = {}' –

回答

1

我已經提出了另一種解決方案,可以幫助。在您的輸入,我們將添加另一個監聽所以這將是這樣的:

<input type="email" name="email" v-model="info.email" v-validate="'required|email'" @input="validate"> 

然後將添加一個叫V型驗證功能的驗證功能,使您的VUE實例將是這樣的:

var app = new Vue({ 
    el: '#app', 
    data: { 
     info: { email: '' } 
    }, 

    methods: { 

     onSignin: function (e) { }, 
     clear_proc: function (e) { 
      delete this.info.email 

      this.errors.clear() 
     }, 
     validate: function() { 
      this.$validator.validateAll(); 
     } 
    } 
}) 
+0

我認爲this.errors.clear()可以工作,但由於規則是'require | email',在clear()之後會產生一個錯誤,是否有辦法跳過這個錯誤?在許多情況下,你喜歡清空表單中的所有字段,而不會出現錯誤警告,直到鍵盤被按下爲止 – AngeloC

+0

是的,如果我的情況下,我會建議你創建自己的驗證功能,因爲你的表單沒有那麼大。但我認爲'刪除'操作符會做到這一點,不是嗎? –

+0

刪除作品,我認爲自定義驗證的方式,看看例子,它有這個新的JS風格,看起來讓我感到困惑: – AngeloC

2

使用以下命令:

this.$validator.clean(); 
+0

如果我想要獲取所有錯誤消息,我該如何獲得它們在JavaScript端驗證之後。 – usama

+2

這已棄用,但替換作品: vee-validate.js:[vee-validate] validator.clean標記爲棄用,請改爲使用validator.reset。 – philw

0

使用下面的方法:

this.errors.clear()