【问题标题】:Vee validation is not working inside the <b-form-input> tagVee 验证在 <b-form-input> 标记内不起作用
【发布时间】:2018-10-18 05:03:50
【问题描述】:

下面是我的代码。在 addEmployee.vue 文件中,有字段。名中间名姓。在三个字段中,“名字和姓氏”具有 noraml 标签。但是“中间名”有标签。 Vee-validate“必需”验证适用于普通输入标签字段,但不适用于 Middlename 字段。这是什么原因?

addEmployee.vue

  <template>
 <b-card>
    <h4 slot="header" class="card-title">Employee</h4>
        <b-row>
            <b-col sm="3">
              <b-form-group>
                <label for="name">First Name </label>
                <input type="text" id=""  class="form-control" placeholder="Enter your name" v-validate="'required|Name'" name="Firstname">
                        <span v-show="errors.has('Firstname')" class="is-danger">{{ errors.first('Firstname') }}</span>
               </b-form-group>
            </b-col>
            <b-col sm="3">
              <b-form-group>
                <label for="name">Middle Name </label>
               <b-form-input type="text" id="" placeholder="Enter your name" v-validate="'required|Name'" name="Middlename"> 
                  <span v-show="errors.has('Middlename')" class="help is-danger">{{ errors.first('Middlename') }}</span></b-form-input>
              </b-form-group>
              </b-form-group>
            </b-col>
             <b-col sm="3">
              <b-form-group>
                <label for="name">Last Name </label>
                <input type="text" id=""  class="form-control" placeholder="Enter your middle name" v-validate="'required|Name'" name="Lastname">
                        <span v-show="errors.has('Lastname')" class="help is-danger">{{ errors.first('Lastname') }}</span>
              </b-form-group>
            </b-col>
        </b-row>
          <input type="submit" value="Submit" @click="validateForm">
 </b-card>
</template>

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

export default {
  name: 'addEmpl'
},
   methods: {
    validateForm() {
    this.$validator.validateAll().then((result) => {
    if(!result){
    alert('not submitted')
    return
  }
  alert('submitted')
}).catch(() => {
});
   }
}
}
</script>

<style lang="scss" scoped>
.is-danger{
  color:  RED;
}
</style>

提前致谢。

【问题讨论】:

    标签: vue.js vuejs2 vee-validate


    【解决方案1】:

    你必须在 span 之前关闭 b-form-input ;

    <b-form-group>
                    <label for="name">Middle Name </label>
                   <b-form-input type="text" id="" placeholder="Enter your name" v-validate="'required|Name'" name="Middlename"> 
                      <span v-show="errors.has('Middlename')" class="help is-danger">{{ errors.first('Middlename') }}</span></b-form-input>
                  </b-form-group>
                  </b-form-group>
    

    成为:

    <b-form-group>
                    <label for="name">Middle Name </label>
                   <b-form-input type="text" id="" placeholder="Enter your name" v-validate="'required|Name'" name="Middlename"> </b-form-input>
                      <span v-show="errors.has('Middlename')" class="help is-danger">{{ errors.first('Middlename') }}</span>
                  </b-form-group>
    

    删除重复的 /b-form-group 也(非关键), 现在可以了:)

    【讨论】:

    • 没有。它不工作。我已经像你说的那样改变了。 &lt;b-form-group&gt;&lt;b-form-input type="text" id="" placeholder="Enter your name" v-validate="'required|Name'" name="Middlename"&gt; &lt;/b-form-input&gt; &lt;span v-show="errors.has('Middlename')" class="help is-danger"&gt;{{ errors.first('Middlename') }}&lt;/span&gt; &lt;/b-form-group&gt;
    • 它适用于我,尝试使用不带 |Name 的 'required' 进行测试
    • @Mgasmi.Yeash 它仅在“更改”字段时才有效。我必须先输入值,然后如果我删除了值,则会显示“必需的错误消息”。但是对于其他字段,在模糊字段本身时会显示错误消息
    猜你喜欢
    • 2018-11-29
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多