element必填校验 输入空格问题,修改正则表达式、请求拦截器,实现所有输入框去除首尾空格

element-ui form 表单验证--输入空格问题 <el-form :rules="rules"> <el-form-item label="名称" prop="name"> <el-input size="small" v-model.trim="form.name" placeholder="请输入名称"></el-input> </el-form-item> </el-form> v-model.lazy 只有在input输入框发生blur事件时才触发 v-. 阅读详情
AI摘要

没有检索到摘要

一、element-ui,必填校验输入空格是可以通过校验的?

在这里插入图片描述
我们可以看一下elemen-ui的源码,
在这里插入图片描述

我们可以看到其实element-ui对应el-form-item关于必填校验的部分是采用了rules,rules.length去进行的校验 我们需要知道的是其实空格也同样算是一个字符。同样的空格那么肯定是会通过校验的,那么我们如何去实现不让其首尾输入空格呢?

二、解决方案?v-model.trim修饰符?

当然我们第一个想法想到的肯定是trim这个修饰符,首先我们可以看一下官网
在这里插入图片描述
我们可以试一试,当input新增了trim后会出现怎样的效果?
在这里插入图片描述
如果采用trim修饰符的话,确实可以实现功能,但是这个时候首尾都不能输入空格就会导致一个问题,当我们从左到右输入文字的时候
例如

1111   2222

我如果想写完1111立刻再输入几个空格再输入2222,这个时候如果我们采用的是trim便会遇到不能输入的问题,我们只能11112222输入完成之后再去讲鼠标光标放置在11112222中间部分输入空格,这样肯定是不利于我们输入的。

三、采用pattern,手写正则的方式实现功能功能。

我们只需要在我们对应的rules数组对象校验中新增这样一个正则写法即可。

pattern: ‘[^ \x20]+’

完整写法

loginRules: {
        username: [{ required: true, pattern: '[^ \x20]+', trigger: 'blur', message: '用户名不能为空' }],
        password: [{ required: true, pattern: '[^ \x20]+', trigger: 'blur', message: '密码不能为空' }],
        code: [{ required: true, pattern: '[^ \x20]+', trigger: 'change', message: '验证码不能为空' }],
      },

四、请求拦截器过滤所有的请求参数,对应的参数首尾空格全部去掉。

当然上方的功能保证的其实也只是校验项 在开头部分输入空格会触发校验,但是我们在末尾输入空格的时候,对应的校验则不会再触发,这个时候我们则需要在进行搭配,写一个请求递归,实现所有请求参数的首尾去空格。

编写递归函数放置到我们请求拦截器当中

/**
 * @description: 2021-05-14 请求参数首尾去空格
 * @param {*} data
 * @return {*}
 */
function isTrim(data) {
  // 首先需要判断当前的config中是否存在data值
  if (data && data instanceof Object) {
    for (const key in data) {
      if (Object.hasOwnProperty.call(data, key)) {
        // 此处我们不要使用   let element = data[key] 注意  如果采用这种方式的话对应trim改变的值和data[key]将不再会是一个同一个内存地址
        // 在需要判断一下当前数据是否是数组
        if (Array.isArray(data[key])) {
          // 就将数组放进去
          data[key] = isTrim(data[key])
        } else if (data[key] && data[key] instanceof Object) {
          // 如果对象里面套对象的话
          data[key] = isTrim(data[key])
        } else if (data[key] && Object.prototype.toString.call(data[key]) == '[object String]') {
          // 如果对象里面的数据是String的话那么就直接trim只对String进行操作
          data[key] = data[key].trim()
        }
      }
    }
    return data
  } else if (data && Object.prototype.toString.call(data) == '[object String]') {
    // 如果是字符串说明是JSON.parse需要转换
    let dataObj = JSON.parse(data)
    // 转成对象之后在抛出去
    dataObj = isTrim(dataObj)
    return JSON.stringify(dataObj)
  } else if (data && data instanceof Array) {
    // 如果是数组  那就forin一下  判断里面的数据类型
    for (const key in data) {
      if (Object.hasOwnProperty.call(data, key)) {
        if ((data && data instanceof Object) || (data && data instanceof Array)) {
          data[key] = isTrim(data[key])
        }
      }
    }
    return data
  }
}

在这边我是用的是axios来实现ajax请求,找到我们的请求拦截器处:
在这里插入图片描述
递归完成后得到的便是字符串去除首尾空格的效果。
在这里插入图片描述

禁止在前端的Element UI表单输入框中输入空格 在前端开发中,Element UI是一个非常流行的Vue.js组件库,它提供了丰富的UI组件来简化界面开发。在某些情况下,我们可能需要限制用户在输入框中输入空格,以确保数据的准确性和一致性。需要注意的是,上述代码只是一个简单的示例,仅仅演示了如何禁止输入空格。在实际的项目中,你可能需要处理更多的情况,例如复制粘贴、拖拽等操作,来确保输入框中不会包含空格。事件处理程序中,我们检查按下的按键的键码是否为32(空格键的键码),如果是,我们调用。通过这种方式,用户将无法在Element UI的输入框中输入空格。 阅读详情

相关推荐

Element-UI 实现动态增加多个输入框并校验

在做复杂的动态表单,实现业务动态变动,比如有一条需要动态添加的el-form-item中包含了多个输入框,并实现表单验证,但在element-ui组件库中给出的表单校验中没有这样的格式,想要实现这个功能就来跟我一起学习吧。

一碗清深的博客 6896

vue的ElementUI form表单给label属性字符串中添加空白占位符

在用ElementUI form表单时 需要表单里的左侧的label显示的字体上下对齐,需要在字体中间加空白占位符,在尝试使用&nbsp之后,还是不能使用,vue会将&nbsp直接打印出来,并不能转换成空白占位符: 显示的结果: 渲染失效,vue官方使用v-html转html,但是label是在组件里,不能这样用。只好另想办法,记得搜狗输入法有特殊字符,在特殊符号中输入“空”,......

pon的博客 1万+

大厂Python自动化测试面试题合集

题目:函数的作用是什么?调用函数的语法?答案:将独立功能代码封装成模块,复用代码;函数名(实参)。题目:函数 return 作用是什么?无 return 时函数返回什么?多返回值底层是什么类型?答案:返回函数执行结果;无 return 默认返回 None;return x,y,z 底层自动封装为元组。题目:函数四大参数类型分别是什么?定义顺序要求?答案:必选参数、默认参数、可变位置 * args、命名关键字、可变关键字 **kwargs;顺序:必选→默认→*args→命名关键字→**kwargs。

悦分享 104

element-ui的form表单的lable中间添加空格使其对齐

解决方法:复制后面方框中的空字符【 】

weixin_45618937的博客 1191

从FinFET到NanoSheet:一文看懂TSMC制程技术的架构革命与性能飞跃

本文深入解析了TSMC从FinFET到NanoSheet的制程技术架构革命。FinFET通过三维立体结构解决了短沟道效应,而NanoSheet采用环绕栅极设计,实现了更强的静电控制与设计灵活性,结合EUV光刻技术,共同推动了芯片性能与能效的飞跃,为下一代AI与高性能计算奠定基石。

i3j4k5的博客 288

elementui的输入框设置为必填的代码

使用 element-ui 的输入框,可以在绑定的 v-model 中使用 required 来设置输入框为必填。 示例代码如下: <template> <el-input v-model="value" placeholder="请输入" required></el-input> </template> <script> expo...

weixin_35756130的博客 4304

Halcon与C#联合编程(一):使用S7协议实现机器视觉上位机与西门子PLC联动

本项目技术栈:C#基础,多线程,Halcon DirectShow,Halcon形状检测,Halcon QR码识别,西门子S7通讯协议,西门子PLC为核心的下位机及执行元件

虎鲸不是鱼 1万+

element-ui的form表单的 lable添加空格并对齐

element-ui的form表单的 lable添加空格并对齐。

我认不到你的博客 3635

基于opencv自定义网格板的相机标定软件源码

本软件开发版使用的是VS2013和QT5.7, 安装版的需要安装VS核心库(目录里的vcredist_x64.exe, 已安装VS的不需要)。采用强大的模板匹配算法,本程序适用于自定义大范围网格标定(本例程网格使用的是自己画的网格板31*21*10cm),网格点识别度高,矫正速度快,精度高。 使用步骤 第1步: 打开图片,打开标定工具GridCalibTool.exe, 然后选择打开一张待标定的图(CalibFiles文件夹下的500.jpg)。如下图: 第2步: 提取待标定区域(去掉多余部分,只保留网

qq_33138437的博客 1120

实验六 存储器实验

只读存储器(ROM)是一种在正常工作时其存储的数据固定不变,其中的数据只能读出,不能写入,即使断电也能够保留数据,要想在只读存储器中存入或改变数据,必须具备特定的条件。当地址为00000101时,会分别在数据位宽为8,16,32的只读寄存器中找到地址为00000101所对应的十进制地址位置,也就是地址为5的数据,并将其分别以8位,16位,32位输出。因此,输出保持为0。因此,当异步清零信号为1时,无论其他输入信号是什么,触发器的输出都会被强制清零,输出为0。1)寄存器输入0011,使能端1,异步清零0。

wenmou1111的博客 3001

ElTable实现空单元格自动填充占位符

ElTable实现空单元格自动填充占位符‘–’ 根据前端开发规范及UE建议,考虑给表单的空单元格插入占位符‘–’,一开始的想法很简单,在el-table-column中渲染时对传入的data进行判断即可,相关代码如下: <el-table-column label="按键" width="100px"> <span class="c-one-line did-desc-t...

CSU_Zipple的博客 8503

DRM遇到的实际问题及领悟(3)

DRM遇到的实际问题及领悟(3)

phmatthaus的专栏 636

vue+ elementUI 让label增加空格的办法

label增加空格

weixin_44363139的博客 2842

【零基础学习CAPL】——CAN报文的发送(CRC——ChecSum值)

本章主要介绍带有CRC值的报文发送一般报文可使用CANoe的IG模块直接发送,但带有CRC值的报文就只能编写脚本进行发送,以下详细讲解在配合Panel面板情况下,如何进行带有循环冗余码的报文进行报文的发送。

LOVE135149的博客 1913

电源芯片MPQ3431A

MPQ3431A是一款具有宽输入范围的固定频率为450kHz的高度集成的升压转换器,其输入电压低至2.7V,采用恒定关断时间(COT)的控制拓扑,可提供快速的瞬态响应。芯片支持通过MODE管脚配置PSM(pulse-skip mode)、FCCM(forced continuous conduction mode)和USM(ultrasonic mode);还支持通过电流限制配置来达到精确的过流保护;同时芯片欠压保护(UVLO)和过温保护(OTP)。MPQ3431A采用QFN-13(3mmx4mm)封装。保

qflook的博客 1559

正则校验字符串中是否存在空格

const reg = new RegExp(/\s/) reg.test('1 23')

qq_43765727的博客 9742

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

vue element UI 处理输入框必填修改样式逻辑

vue必填处理思路

young_sam的博客 646

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

2020-11-19

print函数用法小技巧: 1,可以通过关键字参数seq自定义想要的分隔符以分隔字符串;下面看例子: 输入print(1, 2, 3 , sep=’:’)(用冒号分隔),输出为1:2:3。 当然sep也可以是一个空串,如sep=’’,这样可以使得这些参数相连。 如print(1, 2, 3 , sep=’’), 输出为123. 2,第二个技巧可以使用关键字参数end可以指定一个可选择的结尾字符串。如指定一个空字符串end=’’,这样结束后不输出任何字符。 ...

weixin_46235790的博客 342

正则校验空格_JavaScript的正则

正则表达式(用于校验有规则的字符串)方式一使用newvar reg=new RegExp(box,gi)(i忽略大小写,g匹配)方式二字面量var box = /box/; 正则的方法(两个).test 返回true和fasle.exec 返回null和数组支持正则的字符串方法(四个).match (返回null和数组).search (返回下标和-1).replace .split各种符号...

weixin_39705850的博客 2204

el-input设置必填提示(单个&多个)

el-input设置必填

song_song0927的博客 2万+

关于element UI 中输入框禁止输入空格的实现

<el-input class="nameInput" maxlength="20" v-model.trim="form.teamName" placeholder="请输入团队名称"></el-input>

weixin_43365444的博客 4866

JavaScript正则校验空格

1.校验开头不能有空格: jQuery.validator.addMethod("firstNotHasBlank", function(value, element) { var fBlank =/^\S+/; return this.optional(element) || (fBlank.test(value)); }, "开头不能有空格"); 2.校验结尾不能有空格: jQuery.validator.addMethod("lastNotHasBlank", function(va...

u010227042的博客 8161

element ui 空格_空格是您的UI朋友。 大量使用它。

element ui 空格Originally published at marcandrew.me on July 30th, 2020. 最初于 2020 年7月30日 在 marcandrew.me 上 发布 。 Ah good old White Space. One of the simplest things to add to your designs to improve bot...

weixin_26732881的博客 1120

element-ui的Form表单设置自定义校验规则。input输入框设置必填。input框前红色*号的设置。

在组件中填写方法中需要的属性(ref,prop,:ruls)首先,从element-ui中找到你需要的组件。在methods方法中加入。

qq_56715703的博客 2565

element-ui form 验证表单输入空格问题

element-ui中自带的表单必填项校验不能去除空格,此时若输入空格,required: true验证还是可以通过。若想正确校验需要去除字符两边的空格。在v-model加上.trim就可以解决。 <el-form :rules="rules"> <el-form-item label="名称" prop="name"> <el-input size=...

qq_36437172的博客 9175
上一篇: display设置显示隐藏,transition过渡不起效果,采用opacity+visibility+dispaly解决问题
下一篇: vue如何在style标签中使用data响应式数据?
归来巨星
归来巨星 新星创作者: 前端开发技术领域 新星创作者: 前端开发技术领域
博客等级 码龄7年 5391粉丝 95原创
评论 26
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归来巨星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值