2017-04-26 67 views
0

詳細描述後VUE形式 - vue.js網頁表單驗證方案

VUE形式驗證所使用的庫是從 https://github.com/fergaldoyle/vue-form如何重置AJAX提交完成

的jsfiddle鏈接:https://jsfiddle.net/zfqt4yhq/51/

問:

  1. 使用DOM的form.reset()方法時無法獲取形式復位到STA沒有錯誤類的te。 ajax提交後處理重置表單的正確方法是什麼? 當你點擊「重置」按鈕,如何恢復到初始狀態而無需驗證文本出現在&下面css突出顯示?

  2. 在的jsfiddle例如,瀏覽器控制檯調試模式

    • 因爲刪除錯誤類的條件之一就是讓$提交的值設置爲false,但如何改變$提交的值?

    <field-messages name="name" show="$touched || $submitted" class="form-control-feedback"> <div>Success!</div> <div slot="required">Name is a required field</div> </field-messages>

    • var vueformapp = new Vue({ ... });
    • vueformapp.$data.formstate.name.$touched = true // = false;
      • 值改變。
    • vueformapp.$data.formstate.name.$submitted = ture // false;
      • 值將不會改變。
  3. 另一種可能的解決方法,是否有任何CSS破解實現復位形式在這種情況下的jsfiddle。

回答

1

它看起來像庫遺憾的是未重置領域的每https://github.com/fergaldoyle/vue-form/issues/55

用戶有建議你使用:

Object.keys(myFormState).forEach(k => { 
    if (k[0] == '$') return; 
    const field = myFormState[k]; 
    field._setPristine(); 
    field._setUntouched(); 
}); 

設置形式質樸和字段不變。創作者說他會在下一個版本中添加功能。

您還可以使用vuelidate: https://monterail.github.io/vuelidate/#sub-v-methods

,它有一個復位方法。BTW在測試中不要忘了休息,像dfsq模型認爲

+0

感謝您對其他更受歡迎的vue-validator的推薦。 – BOBO

+0

順便說一句,你能弄清楚如何把上面提到的修復代碼放到上面提到的jsfiddle中來讓這個例子重置表單工作嗎?非常感激。 – BOBO

+0

@BOBO不,我使用了this.formState,但它似乎沒有工作,我現在在工作,所以我不能玩得太多,我會盡力幫助更多。 –

-3

自定義的驗證顯示標籤的CSS名隱藏

$('.error').hide(); 

或其他選項

$('#formname').clearValidation(); 
相關問題