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

网站排名5118哈尔滨工程造价信息网

网站排名5118,哈尔滨工程造价信息网,网站如何运营赚钱,青岛做企业网站的公司需求背景 就是页面很多表单输入框,期望在提交的时候,都要把用户两边的空格去掉 ❌使用 vue 的指令 .trim 去掉空格 中间会输入不了空格, 比如我想输入 你好啊 中国, 这中间的空格输入不了,只能变成 你好啊中国 ❌在提交的时候使用…

需求背景

就是页面很多表单输入框,期望在提交的时候,都要把用户两边的空格去掉

  • ❌使用 vue 的指令 .trim 去掉空格
    1. 中间会输入不了空格, 比如我想输入 你好啊 中国, 这中间的空格输入不了,只能变成 你好啊中国
  • ❌在提交的时候使用 trim()方法去两边空格
    1. 需要一个个字段的添加,容易出错
    2. 有必填项的校验麻烦,比如用户输入了多个空格 ,我们希望能在输入框下面有提示

期望实现

  • ✅封装一个指令,能够在鼠标失焦的时候把两边的空格去掉,这样就对之前的业务代码没有影响
  • Input,TextArea都能支持
  • ✅不区分组件库,ElementAntd, iview这些的Input都能使用

希望如下几种使用方法都支持

    <el-form><el-form-item><input type="text" v-model="inputs.aaa" placeholder="普通inut" v-trim /></el-form-item><el-form-item><el-input v-model="inputs.bbb" placeholder="el-input" v-trim /></el-form-item><el-form-item v-trim><el-input v-model="inputs.ccc" placeholder="外层使用" /></el-form-item></el-form>

在这里插入图片描述

实现

Vue3版本

/*** 去除两边空格* <el-input v-model="xxx" v-trim></el-input>*/function getInput(el) {let inputEle;const { tagName } = el;if (tagName === "INPUT" || tagName === "TEXTAREA") {inputEle = el;} else {inputEle = el.querySelector("input");if (!inputEle) {inputEle = el.querySelector("textarea");}}return inputEle;
}function dispatchEvent(el, type) {let evt = document.createEvent("HTMLEvents");evt.initEvent(type, true, true);el.dispatchEvent(evt);
}const Trim = {mounted: el => {if (!el) return;let inputEle = getInput(el);const handler = function (event) {const newVal = event.target.value.trim();if (event.target.value != newVal) {event.target.value = newVal;dispatchEvent(inputEle, "input");}};el.inputEle = inputEle;el._blurHandler = handler;inputEle?.addEventListener("blur", handler);},beforeUnmount(el) {const { inputEle } = el;inputEle?.removeEventListener("blur", el._blurHandler);},
};Trim.install = app => {app.directive("trim", Trim);
};export default Trim;

Vue2版本

/*** 去除两边空格* 使用 <el-input v-model="xxx" v-trim></el-input>*/
function getInput(el) {let inputEle;const { tagName } = el;if (tagName === "INPUT" || tagName === "TEXTAREA") {inputEle = el;} else {inputEle = el.querySelector("input");if (!inputEle) {inputEle = el.querySelector("textarea");}}return inputEle;
}
function dispatchEvent(el, type) {let evt = document.createEvent('HTMLEvents')evt.initEvent(type, true, true)el.dispatchEvent(evt)
}
const Trim = {inserted: el => {let inputEle = getInput(el)const handler = function(event) {const newVal = event.target.value.trim()if (event.target.value != newVal) {event.target.value = newValdispatchEvent(inputEle, 'input')}}el.inputEle = inputEleel._blurHandler = handlerinputEle.addEventListener('blur', handler)},unbind(el) {const { inputEle } = elinputEle.removeEventListener('blur', el._blurHandler)}
}
Trim.install = function(Vue) {Vue.directive('trim', Trim)
}
export default Trim

使用

<template><div class="container">测试页面<el-form><el-form-item><input type="text" v-model.trim="inputs._a" placeholder="原生input,v-model.trim能实现" /></el-form-item><el-form-item><input type="text" v-model="inputs.aaa" placeholder="普通inut" v-trim /></el-form-item><el-form-item><el-input v-model="inputs.bbb" placeholder="el-input" v-trim /></el-form-item><el-form-item v-trim><el-input v-model="inputs.ccc" placeholder="外层使用" /></el-form-item></el-form></div>
</template><script>
export default {name: 'TestPage',data() {return {inputs: {aaa: '',bbb: '',ccc: '',},}},
}
</script>
<style lang="scss" scoped>
.el-form {padding-top: 100px;max-width: 500px;margin: 0 auto;input {width: 100%;padding: 0 20px;height: 40px;}
}
</style>

效果预览
在这里插入图片描述

http://www.yayakq.cn/news/323994/

相关文章:

  • 品牌网站如何建设现在做网站建设都是自建
  • 做网上竞猜网站合法吗互动平台有效学时
  • 免费建站模板哪个好最近最新资源在线观看
  • 电脑做网站软件运营小程序的成本有哪些
  • 网页站点什么意思站长之家域名查询官网
  • .net网站项目有哪些好创意网站有哪些方面
  • c 做注册网站wordpress点击创建配置文件没反应
  • 甘肃城乡建设厅网站首页短剧分销系统开发
  • 张家口高新区做网站网络服务器租赁
  • 解析域名后怎么弄网站网站建设与管理升学就业方向
  • 企业展示网站模板惠州 商城网站建设
  • 网站文章系统ocr是不是用于制作网页的软件
  • 可以开发哪些网站做壁纸网站的意义
  • 电子网站模板网站建设友链交换
  • 太原谁想做网站免费个人网页制作教程
  • 北京高端网站建设费用运营一个网站一年费用
  • 晋城市公用事业建设局网站建立了公司网站
  • 专业做网站有哪些大连网站网站搭建制作
  • 男女做暧暧视频免费网站网页设计的尺寸大小
  • 青岛网站建设 推荐青岛博采网络建网站维护要多少钱
  • 中小企业网站建设示范平台机械代加工厂家
  • 信用网站建设内容网站做301重定向
  • 微网站开发 在线商城学校网站查询
  • 大型网站建设优化排名女生做ui设计
  • dw做网站怎么换图片做视频卖给视频网站
  • 做电影平台网站怎么赚钱的xampp网站后台
  • 广州做网站建设注册公司注册资金最低多少钱
  • 福建得兴建设工程网站东昌府区建设局网站
  • 文化网站建设免费ppt模板下载医院
  • 怎么使用wordpress做网站广州番禺房价2023年最新房价