【问题标题】:Javascript functions are not working properly in the vuejsJavascript 函数在 vuejs 中无法正常工作
【发布时间】:2018-05-03 09:44:26
【问题描述】:

下面是我的代码。我想在提交期间验证表单。一世 阻止提交操作,直到所有数据都有效。因此我使用了 “验证所有()”方法。如果表单有空/无效日期,它应该 提醒“未提交”。否则它应该提醒“已提交”。我的问题是 那,当我第一次点击提交按钮时,警报 显示为“已提交”而不是“未提交”Result1。但 当我第二次或进一步点击同一个按钮时 正确显示为“未提交”Result2。我不知道 原因,为什么它在第一次不起作用。

<template>
           <div id="app">
            <h1>Add Items</h1>
            Product Name : 
            <input type="text" name="product" v-validate="'required|alpha_dash'" >
            <span style="color:red;">{{errors.first('product')}}</span>
            <br>
            Product Price : 
            <input type="number" name="price" v-validate="'required|min_value:100|max_value:500'">
            <span style="color:red;">{{errors.first('price')}}</span>
            <br>
            <button @click="submit">Save</button>
          </div>
        </template>

          <script>
          import Vue from 'vue'
          import VeeValidate from 'vee-validate'
          Vue.use(VeeValidate)

        export default {
          name: 'addEmpl',
          methods: {
           submit() {
              this.$validator.validateAll()
              if (!this.errors.any()) {
                alert('submitted')
              }else{
                 alert('not submitted')
              }
           }
          }
        }
          </script>

【问题讨论】:

    标签: vue.js vuejs2 vee-validate


    【解决方案1】:

    validateAll()方法之后尝试.then(...)

    this.$validator.validateAll().then((result) => {
      if(!result){
        alert('not submitted')
        return
      }
      alert('submitted')
    }).catch(() => {
      // error check if needed
    })
    

    此外,类似here on Github page 的案例也存在问题。你可以看看。

    【讨论】:

    • 是的,现在它工作正常。但是link 的原因是什么。有什么解决办法吗??
    • 这是一个不同的问题,如果这个解决方案没问题;只需勾选它以获得“问题关闭的感觉”。我个人也会看看这个问题。
    猜你喜欢
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多