当前位置: 首页 > news >正文

input+disabled/readonly问题

背景:

vue2+elementui

<el-input v-model="inputForm.projectName" class="input-font" :disabled="projectDisabled" placeholder="请选择"   :readonly="isReadonly"><el-button  slot="append"  @click="showChooseProject" icon="el-icon-search"></el-button>
</el-input>

<input>元素设置了disabledreadonly属性,再点击按钮修改inputForm.projectName字段后,校验出错,以及input显示值不更新的问题。

解决方法

校验出错-自定义验证逻辑

原因分析:

表单字段被 readonlydisabled,可能影响验证触发;

验证触发的时机和值更新的时机有先后,导致校验出错;

解决办法:

自定义验证逻辑,代码如下:

<el-form-item label="项目" prop="projectName" :rules="[{ required: true, validator: validateProjectName, trigger: ['blur','change']  }, ]"><el-input v-model="inputForm.projectName" class="input-font" :disabled="projectDisabled" placeholder="请选择"   readonly><el-button  slot="append" :disabled="disabled" @click="showChooseProject" icon="el-icon-search"></el-button></el-input>
</el-form-item>
// 自定义验证逻辑validateProjectName  (rule, value, callback)  {// 判断值是否为空if (!this.inputForm.projectName) {callback(new Error('项目不能为空'));}  else {callback();  // 验证通过}},

validateProjectName 函数中获取value的时机和修改时机有先后,所以验证结果不准确,所以直接把验证inputForm.projectName即可

input显示值不更新 - 手动触发更新

this.inputForm.projectName = name;
this.$forceUpdate();

由于设置了disable | readonly属性,回显失败。猜测是diff算法没检测到修改,没有渲染等导致。所以直接强制更新,搞定。

http://www.xdnf.cn/news/979687.html

相关文章:

  • Vue3 + TypeScript + Element Plus 表格行按钮不触发 row-click 事件、不触发勾选行,只执行按钮的 click 事件
  • Explore Image Deblurring via Encoded Blur Kernel Space论文阅读
  • 时序数据库IoTDB数据模型建模实例详解
  • Jmeter中变量如何使用?
  • MySQL 三表 JOIN 执行机制深度解析
  • 基础数论一一同余定理
  • Qt 动态插件系统QMetaObject::invokeMethod
  • 【docker】docker registry搭建私有镜像仓库
  • 开源 java android app 开发(十二)封库.aar
  • SD-WAN 技术如何助力工业物联网(IIoT)数据传输?深度解析传统方案对比与应用实践
  • Chrome 优质插件计划
  • 智慧农业物联网实训中心建设方案
  • 趋境科技英特尔生态沙龙举办,打通大模型私有化“最后一公里”
  • 当简约美学融入小程序 UI 设计:开启高效交互新篇
  • 【Java学习日记38】:C语言 fabs 与 Java abs 绝对值函数
  • element plus的el-form重置无效
  • CavityPlus: 北大团队研发的综合性蛋白质结合位点检测及功能分析网络服务器
  • 【python】预测投保人医疗费用,附insurance.csv数据集
  • 嵌入式系统内核镜像相关(三)
  • React 状态管理指南:Redux 原理与优化策略
  • 避坑:启动sdk-c demo master需要注意的事情
  • 【AI】模型vs算法(以自动驾驶为例)
  • 基于React Native的HarmonyOS 5.0休闲娱乐类应用开发
  • 多分类性能评估方法
  • 企业级RAG系统架构设计与实现指南(基于Java技术栈)
  • uniapp 腾讯云 COS 访问控制实战(细粒度权限管理)
  • 撤销Git合并操作方法总结
  • 七牛云域名配置与CNAME解析
  • 李沐 《动手学深度学习》 | 实战Kaggle比赛:预测房价
  • 【PhysUnits】17.7 readme.md更新