Ant Design Vue V1.7.8版本,a-input 去空格

目前项目在使用Vue2.6+Ant Design Vue V1.7.8版本开发,其实就是用了jeecg的框架,发现这个比较旧的版本没有**.trim()**的方法,所以只能手搓;

第一种:全局添加

注意:用了第一种发现在使用苹果电脑的时候,苹果输入法有bug;
注意:用了第一种发现在使用苹果电脑的时候,苹果输入法有bug;
注意:用了第一种发现在使用苹果电脑的时候,苹果输入法有bug;

main.js文件

javascript 复制代码
mounted() {
document.body.addEventListener('input', this.removeSpacesFromInput, true);
}
//去掉input的空格
  methods:{
    removeSpacesFromInput(e) {
      // 判断是否为 Ant Design 的 a-input 元素
      if (e.target.tagName === 'INPUT') {
        if (e.target.closest('.ant-input')) {
          // 对 Ant Design 的 a-input 组件去除空格
          e.target.value = e.target.value.replace(/\s+/g, '');
        } else if (e.target.closest('.el-input__inner')) {
          // 对 Element UI 的 el-input 组件去除空格
          e.target.value = e.target.value.replace(/\s+/g, '');
        }
      }
    }
  },
  //去掉input的空格
  beforeDestroy() {
    // 在组件销毁前移除事件监听
    document.body.removeEventListener('input', this.removeSpacesFromInput, true);
  }

第二种:在单个页面中,单个输入框中使用

例子一:

a-input 输入框使用了v-model的情况下

javascript 复制代码
<a-form-model-item label="往来单位名称" prop="supplierName">
  <a-input
   v-model="form.supplierName"
   @input="handleSupplierNameInput"
   placeholder='请输入往来单位名称!' 
   :disabled="type == 'detail'" 
  />
 </a-form-model-item>
 // 在方法里面实现
  methods: {
      handleSupplierNameInput(e) {
        const value = e.target.value;
        const trimmedValue = value.replace(/\s+/g, '');
        if (value !== trimmedValue) {
          this.$nextTick(() => {
          this.form.supplierName = trimmedValue;
          });
        } else {
          this.form.supplierName = value;
        }
      },
  }
例子二:

使用 v-decorator 的方式

javascript 复制代码
data(){
 return {
	form: this.$form.createForm(this),
 }
}
a-form-item label="姓名">
	<a-input 
    v-decorator="['contactName', { rules: [{ required: true, message: '请输入姓名!' }],
    getValueFromEvent: (event) => event.target.value.replace(/\s+/g, ''),
    initialValue: '',
    validateTrigger: 'blur'  
    }]"
    placeholder='请输入姓名' :disabled="type == 'detail'" 
   />
</a-form-item>
例子三:

使用 v-decorator 的方式 + 自定义校验

javascript 复制代码
data() {
  return {
  	validatorRules: {
        username: {
          rules: [{
            required: true, message: '请输入用户账号!'
          }, 
          { 
            pattern: /^[a-zA-Z0-9]+$/,  // 正则匹配英文数字
            message: '只能输入英文或数字!' 
          },
          {
            validator: this.validateUsername,
          }]
        },
     }
	}
}

<a-form-item label="用户账号" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input placeholder="请输入用户账号(输入英文或数字)" 
           v-decorator="['userName', {
          rules: validatorRules.username ? validatorRules.username.rules : [],
          getValueFromEvent: (event) => event.target.value.replace(/\s+/g, ''),
          initialValue: '',
          validateTrigger: 'blur'
        }]"
            :readOnly="!!model.id" autocomplete="new-userName" />
</a-form-item>

以上就是我目前遇到的几种情况吧

相关推荐
Eloudy11 小时前
ReAct 原理简介
前端·javascript·人工智能·react.js·agent·gpu
ZJU_统一阿萨姆12 小时前
【DSH】如何将 DeepSeek Harness 嵌入生产环境?万字解构 DeepSeek Agent Harness 的运行机制与安全边界
前端·javascript·安全
sunly_14 小时前
TypeScript总结:16、面向对象速查
前端·javascript·typescript
张元清14 小时前
React useInterval Hook:没有过期闭包的 setInterval (2026)
javascript·react.js
MXN_小南学前端14 小时前
React超长文本域中实现“返回顶部”浮动按钮
前端·javascript·react.js
gs8014014 小时前
解构 Cordis:面向“时空可组合性”的 TypeScript 元框架深度剖析
前端·javascript·typescript
Highcharts.js15 小时前
Highcharts大数据渲染模块Boost实战与参数最佳实践表
javascript·数据可视化·boost·highcharts·大数据渲染·加速配置·参数表
岁岁种桃花儿15 小时前
Vue核心语法第一篇:Vue是什么?
前端·javascript·vue.js
Highcharts.js15 小时前
数据可视化避坑指南 ——开发中常见图表错误与修复方案
javascript·信息可视化·数据可视化·highcharts·数据可视化避坑·修复方案
观无16 小时前
若依EasyExcel实现单元格合并
开发语言·前端·javascript