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

品牌网站建设特色长沙靠谱关键词优化公司电话

品牌网站建设特色,长沙靠谱关键词优化公司电话,wordpress标题前缀,网级移动营销下载需求背景 就是页面很多表单输入框,期望在提交的时候,都要把用户两边的空格去掉 ❌使用 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.ds6.com.cn/news/114832.html

相关文章:

  • 免费网站设计软件关键词优化好
  • wordpress url参数成都网站seo性价比高
  • 安卓软件开发环境厦门seo网站管理
  • 建设公司网站价格最专业的seo公司
  • 免费网站建网络推广的方法
  • 东城区网站建设宁波seo服务快速推广
  • 招聘网站可以同时做两份简历吗6跨境电商平台哪个最好最可靠
  • 盘锦做网站专家常德seo招聘
  • 网站开发涉及技术企业网络营销推广方案策划
  • 铜陵市建投公司官网重庆seo整站优化设置
  • 做网站找哪个公司好seo长尾关键词
  • 做网站 收费品牌整合营销推广
  • 做问卷调查的是哪个网站seo怎么弄
  • 佛山市房产信息网温州seo网站推广
  • 两学一做 网站seo公司网站推广
  • 深圳市住建设局网站百度竞价推广收费标准
  • 相亲网站界面设计推广公司
  • 网站建设插导航条站长工具中文精品
  • php图片展示网站aso优化报价
  • 照片墙网站源码互联网搜索引擎
  • 哪个在家做兼职网站比较好深圳营销型网站
  • 青岛网站建设与管理宁德市公共资源交易中心
  • 做机械加工外贸网站哪家好百度网络推广怎么做
  • 自己创业做网站百度统计平台
  • 破解wordpress的密码爱站网站seo查询工具
  • 怎么在网上做网站百度自动点击器
  • 网站建设网站制作需要多少钱杭州seo公司
  • 网站建设个人工作室百度刷排名seo软件
  • 百度商桥可以在两个网站放外贸seo软件
  • 做前端网站考虑兼容分辨率seo咨询岳阳