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

榆垡网站建设dw网站管理与建设

榆垡网站建设,dw网站管理与建设,优质手机网站建设推荐,网站建设合作流程图在项目中#xff0c;我们经常会遇到输入框只允许输入数字的情况#xff0c;下面是一段自定义指定 代码#xff0c;复制到项目中#xff0c;注册指定即可使用用法如下#xff1a; 创建一个IntInput.js 文件#xff0c;将下面代码复制到文件中保存在项目中的 main.js 文件中… 在项目中我们经常会遇到输入框只允许输入数字的情况下面是一段自定义指定 代码复制到项目中注册指定即可使用用法如下 创建一个IntInput.js 文件将下面代码复制到文件中保存在项目中的 main.js 文件中导入创建的 IntInput.js 文件注册全局指令app.directive(‘int’, IntInput) 注册后即可使用 v-int 绑定元素兼容了大多数组件库中输入框组件 注意以下代码中的钩子函数是 vue3 写法如需在 vue2 项目中使用修改对应的钩子函数即可代码中有注释说明 /*** 查找并返回元素内部的原生 input 节点。*/ function getInputElement(el) {if (el.tagName.toLowerCase() input) {return el;}const input el.querySelector(input);if (!input) {throw new Error(v-integer directive requires the element to contain an input tag.);}return input; }/*** 将字符串中的全角数字转换为半角数字。*/ function toHalfWidth(str) {return str.replace(/[\uff10-\uff19]/g, (char) {return String.fromCharCode(char.charCodeAt(0) - 65248);}); }export default {/*** Vue 2: bind / Vue 3: mounted*/mounted(el) {const input getInputElement(el);// ⭐ 核心引入一个状态标志来跟踪输入法组合状态el._v_integer_is_composing false;const onCompositionStart () {el._v_integer_is_composing true;};const onCompositionEnd (event) {// 组合结束后标志位复原el._v_integer_is_composing false;// ⭐ 关键手动触发一次 input 事件或直接调用处理函数来执行清理// 使用 dispatchEvent 更符合事件流并能被其他可能的监听器捕获event.target.dispatchEvent(new Event(input));};// onKeydown 逻辑保持不变用于拦截非组合状态下的无效按键const onKeydown (event) {if (el._v_integer_is_composing) {return;}};const onInput () {// ⭐ 关键如果在组合状态中则不执行任何操作if (el._v_integer_is_composing) {return;}const originalValue input.value;const normalizedValue toHalfWidth(originalValue);const sanitizedValue normalizedValue.replace(/[^\d]/g, );if (originalValue ! sanitizedValue) {const selectionStart input.selectionStart;const valueChange originalValue.length - sanitizedValue.length;input.value sanitizedValue;// 简单恢复光标位置if (selectionStart) {input.selectionStart input.selectionEnd selectionStart - valueChange;}input.dispatchEvent(new Event(input, { bubbles: true }));}};// 存储所有处理器以便解绑el._v_integer_handlers {keydown: onKeydown,input: onInput,compositionstart: onCompositionStart,compositionend: onCompositionEnd,};// 绑定所有事件监听器input.addEventListener(keydown, onKeydown);input.addEventListener(input, onInput);input.addEventListener(compositionstart, onCompositionStart);input.addEventListener(compositionend, onCompositionEnd);},/*** Vue 2: unbind / Vue 3: unmounted*/unmounted(el) {try {const input getInputElement(el);if (el._v_integer_handlers) {input.removeEventListener(keydown, el._v_integer_handlers.keydown);input.removeEventListener(input, el._v_integer_handlers.input);input.removeEventListener(compositionstart, el._v_integer_handlers.compositionstart);input.removeEventListener(compositionend, el._v_integer_handlers.compositionend);delete el._v_integer_handlers;delete el._v_integer_is_composing;}} catch (e) {console.warn(Could not unbind v-integer listeners., e);}} };
http://www.pierceye.com/news/818800/

相关文章:

  • 网站编辑 seo是什么 百度知道本地网站搭建流程
  • 用凡科做网站好吗搜索自媒体平台
  • 学设计的网站有哪些内容免费设计图片软件
  • 柳州建站公司404错误直接转向到网站首页
  • 字画网站建设iis怎么查看网站的域名
  • 公司门户网站建设特点新增专业建设规划
  • 备案号怎么放置到网站长春如何建立一个平台网站
  • 企业网站的一般要素包括厂房设计
  • 郑州做网站 汉狮网络深圳市中心是哪个区
  • jsp做的婚恋网站做死活题网站
  • 帮做网站的公司荥阳网站优化公司
  • 网页设计心得体会正文合肥网站推广优化公司
  • 邯郸菜鸟网站建设网站搭建费用价格表
  • 网站优化3个关键词和10个关键词的区别品牌推广方式有哪些
  • 建立网站需要多少钱一个二手站网站怎做
  • 瑞丽住建局网站科技新闻最新消息10条
  • 可以上传网站的免费空间网站注册都需要什么
  • wap网站开发重庆永川网站建设公司
  • 网站历史记录怎么恢复seo网站优化软件
  • 四川瑞通工程建设有限公司网站贵州省网站建设
  • 购买网站设计制作易龙天做的网站怎么样
  • 十大免费网站推广入口无锡网站建设首选捷搜
  • 网站搭建原理网页制作工程师
  • 中国工程建设交易信息网站邢台百度爱采购
  • 保定建设网站公司qq登陆 wordpress
  • 博客网站开发环境专业外贸网站建设公司价格
  • 响应式电商网站制作企业咨询诊断报告
  • 企业网站怎么建设公司展厅装修设计
  • 怎么联系网站管理员怎么做拍卖网站
  • 山东威海网站开发长沙新媒体运营公司