当前位置: 首页 > 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.dtcms.com/a/244683.html

相关文章:

  • (十)量子注意力机制:深度学习与量子计算的交叉融合探索
  • C++面试(5)-----删除链表中指定值的节点
  • Spring | 深入解析 Spring AOP 中的AopProxyUtils.ultimateTargetClass()解决代理对象注解获取问题
  • 如何选择合适的IP轮换周期
  • Arduino入门教程:0、课程介绍认识Arduino
  • html转markdown
  • 第二十六课:手搓梯度增强
  • AAT Bioquest活细胞钙成像新利器——Calbryte 520.AM在动态监测中的核心优势与应用解析
  • vue3提供的hook和通常的函数有什么区别
  • 【2025最新】Adobe Illustrator下载保姆级安装教程(附官方下载链接)
  • Fastapi + vue3 自动化测试平台(6):AI + Web UI的完美结合
  • debian12 修改MariaDB数据库存储位置报错
  • 让Python成为你的网站引擎:Django全栈开发初体验!!!
  • Django中的ORM的使用步骤----以MySQL为例
  • 【热更新知识】学习一 Lua语法学习
  • 关于使用WebSocket时无法使用@Autowired 注入的问题
  • DNS小结
  • 探索奇妙的LLM应用:提高工作效率的AI代理和RAG合集
  • 高斯函数(Gaussian Function)
  • 别人如何访问我的内网呢? 设置让外网访问内网本地服务器和指定端口应用的几种方式
  • 认识RNN-循环神经网络
  • mysql中不等于走索引吗 不等于查询索引使用情况
  • C# 与低代码平台的融合:以活字格为例的 Web API 开发实践
  • Java项目:基于SSM框架实现的劳务外包管理系统【ssm+B/S架构+源码+数据库+毕业论文】
  • 新德通:光通信领域的硬核力量,引领高速互联新时代
  • 数据定义以及数据类型
  • 削皮刨结构化网格划分
  • ANeko v1.0.3 | 在手机里养只宠物猫 实时互动 动画细腻
  • 入选 ICML 2025,清华/人大提出统一生物分子动力学模拟器 UniSim
  • 网络安全中的封禁日志:从攻击拦截到安全运维的全景解析