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

自定义指令input中前面不能输入空格

vue3加el-input

封装自定义指令

utils/trim.ts

import type { Directive, DirectiveBinding } from 'vue';const trim: Directive = {mounted(el, binding: DirectiveBinding) {// 获取 el-input 的 DOM 节点const inputEl = el.querySelector('input');if (!inputEl) {console.error('v-trim 指令只能用于包含 input 的元素');return;}// 创建 trim 处理函数const trimHandler = () => {const trimmedValue = inputEl.value.trim();if (trimmedValue !== inputEl.value) {// 更新 input 框显示的值inputEl.value = trimmedValue;// 手动触发 el-input 的 input 事件更新 v-model 绑定值const event = new Event('input', { bubbles: true });inputEl.dispatchEvent(event);}};// 在失去焦点时触发 triminputEl.addEventListener('blur', trimHandler);// 保存处理器到元素属性中,方便解绑(el as any)._trimHandler = trimHandler;},unmounted(el) {// 清理事件绑定const trimHandler = (el as any)._trimHandler;if (trimHandler) {const inputEl = el.querySelector('input');inputEl?.removeEventListener('blur', trimHandler);delete (el as any)._trimHandler;}},
};export default trim;

在main.ts中注册

import trim from '@/utils/trim';

app.directive('trim', trim);

使用,直接在el-input中

<el-input

            v-model="PrmContractChanges.searchForm.projectName"

            :placeholder="t('form.input')"

            clearable

            v-trim

          />

 

场景:用户在复制粘贴的时候,有时候复制进来的数据,前面会存在空格,可能会导致查询方法报错,此方法会自动清除数据前的空格,在查询数据中输入的空格是不会被清除的。 

http://www.dtcms.com/a/163076.html

相关文章:

  • WPF TextBlock控件性能优化指南
  • Dali 1.1.4 | 使用尖端技术将描述转换成独特艺术品、照片和图像,发挥无限创意
  • Docker容器资源控制--CGroup
  • 强化学习之基于无模型的算法之时序差分法
  • Python 数据智能实战 (2):LLM 工具箱搭建 - API/库实操与高效 Prompt 设计入门
  • react-新建项目复用node_modules
  • uni-app - 微信小程序中,使用 navigateTo 传递非常大的数字传参精度丢失的问题
  • 1.6 点云数据获取方式——单目相机多视图几何
  • SpringBoot获取用户信息常见问题(密码屏蔽、驼峰命名和下划线命名的自动转换)
  • 每日算法-250429
  • selenium IDE脚本如何转换为可运行的selenium webdriver java程序
  • leetcode 21. 合并两个有序链表(c++解法+相关知识点复习)
  • 如何用vivado导出pin delay
  • DevExpressWinForms-TreeList-设置不可编辑
  • AlDente Pro for Mac电脑 充电限制保护工具 安装教程【简单,轻松上手】
  • Android学习总结之Bitmap篇
  • 单片机-89C51部分:8、定时器
  • Leetcode 3534. Path Existence Queries in a Graph II
  • 每日一道leetcode(不会做学习版,多学一题)
  • 【Redis】缓存|缓存的更新策略|内存淘汰策略|缓存预热、缓存穿透、缓存雪崩和缓存击穿
  • chatshare.xyz激活码使用说明和渠道指南!
  • JavaScript 中深拷贝浅拷贝的区别?如何实现一个深拷贝?
  • mybatis传递多个不同类型的参数到mapper xml文件
  • 本地大模型编程实战(28)查询图数据库NEO4J(1)
  • 苍穹外卖心得体会
  • 笔试专题(十二)
  • 【动态导通电阻】 GaN PiN二极管电导调制对动态 RON 的影响
  • PDF编辑器:Foxit PDF Editor Pro 版功能解析
  • Ubuntu如何查看硬盘的使用情况,以及挂载情况。
  • 浏览器自动化工具:Selenium 和 Playwright