2017-04-26 45 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();