vue自定义组件,ElementUi表单校验v-model不能即时生效的解决方法

  • 前言
  • 核心解决代码
  • 完整代码
    • 父组件
    • 子组件

前言

上篇文字我们介绍了vue自定义组件并使用v-mode实现双向绑定,当我们做form组件的时候经常要使用表单校验,但在使用ElementUi表单校验时,有时候校验v-model不能即时生效,如下图:

其中子组件为一个输入框,父组件使用ElementUi校验子组件输入的值,我们看到当输入框失焦的时候不能即时校验,要提交可以。

核心解决代码

子组件加上@input="validateField('fatherValue')" ,同时增加 validateField方法,进行手动校验。

 <el-form-item label="子组件输入框:" prop="fatherValue"><childComponent v-model="ruleForm.fatherValue" @input="validateField('fatherValue')"/></el-form-item>.............<script>methods:{//手动再验证validateField(type) {this.$refs.ruleForm.validateField(type);},............}</script>

解决后效果如下:

完整代码

父组件

<template><div id="app"><el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="150px"><h3>vue自定义组件,ElementUi表单校验v-model不能即时生效的解决方法</h3><div>父组件fatherValue:{{ruleForm.fatherValue}}</div><el-form-item label="子组件输入框:" prop="fatherValue"><childComponent v-model="ruleForm.fatherValue" @input="validateField('fatherValue')"/></el-form-item><el-form-item><el-button size="mini" type="primary" @click="submitForm('ruleForm')">提交</el-button></el-form-item></el-form></div>
</template><script>import childComponent from './childComponent.vue'export default {name: 'app',data() {return {ruleForm: {fatherValue: ''},rules: {fatherValue: { required: true, message: '请输入字符', trigger: 'blur' },}}},methods: {//手动再验证validateField(type) {this.$refs.ruleForm.validateField(type);},submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {alert('提交成功!');}});},resetForm(formName) {this.$refs[formName].resetFields();},},components: {childComponent},}
</script>

子组件

<template><div><input type="text" v-model="childValue" @blur="returnBackFn"></div>
</template><script>export default {data() {return {childValue: "",}},watch: {//监听value变化(slect控件不是必要,暂时不明)value(newValue, oldValue) {this.childValue = newValue;}},props: {//value是默认双向绑定值,必须在props里面声明value: String},methods: {returnBackFn() {//input是默认双向绑定事件,select控件也可以用input给父组件传递数据this.$emit('input', this.childValue)},},}
</script>

vue自定义组件,ElementUi表单校验v-model不能即时生效的解决方法相关推荐

  1. vue 数组中嵌套数组_vue+element-ui表单校验之数组多层嵌套

    表单校验两层数组嵌套 :prop="'collectKidDtoList.'+index+'.collectKid.'+i+'.collectCode'" :rules=" ...

  2. vue同步请求 + vant表单校验

    Vue同步请求 1. Vue同步请求 2. Vant2 表单校验 2.1 全局校验 2.1 自定义函数校验 1. Vue同步请求 async getIsoPersonInfo(id){await is ...

  3. VUE + Element-UI 表单校验input框数据已存在

    基础校验方式实现 html代码 <el-form-item label="值名称:" style="width: 80%" prop="valu ...

  4. element-ui 表单校验,el-select校验失效问题

    form表单验证时,遇到了校验失效问题,有值的情况下,校验规则并没有对应消失,检查了几个容易出错的地方:1.:model="addForm" 用model绑定表单,而不是v-mod ...

  5. element-UI 表单校验失效处理

    1.el-form-item 的 prop属性绑定的要是字符串: eg: :prop="'answer[' + 0 + ']' "       //而不是    :prop=&qu ...

  6. onsubmit校验表单时利用ajax的return false无效解决方法

    代码: function checkNewEmail(){var re_email=new RegExp("\\w+@\\w+\\.\\w+\\.?\\w*");var newEm ...

  7. ElementUI表单校验rules封装

    工具文件: validator.js //校验规则列表(可扩展) const rules = {URL(url) {const regex = /^(https?|ftp):\/\/([a-zA-Z0 ...

  8. elementui表单校验原始密码_javascript 中入门数据校验

    1.onSubmit 放在表单中,返回false为不提交 ,所以 放一个函数在里面所有的 数据获取,数据判断:都在内:(把一个value放到一个值,和另一个value值比对): 2.获取提交的数据 , ...

  9. element-ui表单校验

    <el-form :model="form" ref="form" :rules="rules" ><el-form-it ...

  10. vue 根据字符串生成表单_vue自定义表单生成器,可根据json参数动态生成表单

    介绍 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue 组件.结合内置17种常用表单组件和自定义组件,再复杂的表单都可 ...

最新文章

  1. 使用seafile搭建自己的百度云
  2. Python制作植物大战僵尸小游戏
  3. MemSQL初体验 - (2)初始化测试环境
  4. hihocoder-Week243-hiho字符串
  5. 串口助手驱动_STM32Cube22(补充) | 使用硬件I2C驱动OLED(SSD1306)
  6. pytorch4:简单的线性回归
  7. 【扩展欧几里得】Bzoj 1477:青蛙的约会
  8. 跨境移动互联网的魅力演绎,hao123无论成就下一个条目?
  9. apache kafkac系列lient发展-java
  10. 双非二本院校,北京211,字节跳动 → 一个新秀的六年
  11. python基础笔记(六)_数据清洗及建模
  12. MegaRAID Storage Manager RAID管理工具基本操作
  13. Python进行高斯积分(Gaussian integral)
  14. 实用的数据可视化工具大集合
  15. 罗技鼠标可以用c语言吗,罗技无线鼠标连接实用程序软件 v1.00.23 官方最新版
  16. 玩转codesys入门篇
  17. eclipse:Project is already imported into workspace
  18. arctanx麦克劳林公式推导过程_三角函数的求导过程
  19. Oracle to_date()函数的用法
  20. UNP-基本TCP编程-1

热门文章

  1. 【报告分享】2021中国瑜伽行业报告-精练(附下载)
  2. 游戏显示无法连接服务器怎么回事,Game Center无法连接服务器怎么办 五种方法任你选择...
  3. ArcGIS教程:太阳辐射建模
  4. 范数不等式 琴生兄弟不等式 补全百度
  5. Divide by Zero 2021 and Codeforces Round #714 (Div. 2)B. AND Sequences(位运算 + 思维 + 排列)
  6. iPhone线控耳机如何使用教程
  7. oracle latch chain,Oracle Latch及latch矛盾
  8. 软件行业英雄们的离世
  9. C#输入身高体重求BMI
  10. 关于手机的各种mac地址