最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue自定義指令限制輸入框輸入值的步驟與完整代碼

 更新時間:2020年08月30日 16:51:10   作者:小豪看世界  
這篇文章主要給大家介紹了關(guān)于vue自定義指令限制輸入框輸入值的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

需求

前端開發(fā)過程中,經(jīng)常遇到表單校驗的需求,比如校驗用戶輸入框的內(nèi)容,限制用戶只能輸入數(shù)字。

本文內(nèi)容基于 element-ui,el-form 組件可以綁定 model、rule 用于表單內(nèi)容校驗,但如果有多個表單多個輸入框那就得寫很多個 rule,雖然方法可以通用可是使用起來也是比較繁瑣的,可通過自定義執(zhí)行實現(xiàn)一次注冊,多次使用。

Vue 自定義指令

我們使用 el-input 作為表單的輸入框

1. 先注冊一個自定義指令

import Vue from 'vue';

Vue.directive('LimitInputNumber', {
 bind(el) {
 # do something
 },
});

2.使用自定義指令

直接在組件內(nèi)綁定 v-limit-input-number 指令

<el-input v-limit-input-number />

3.指令內(nèi)部校驗

onkeypress 事件

onkeypress 事件會在鍵盤按鍵被按下并釋放一個鍵時發(fā)生

可在事件觸發(fā)時檢測若輸入的值不為數(shù)字,直接返回 fales

Vue.directive('LimitInputNumber', {
 bind(el) {
 el.onkeypress = (event) => {
  return (/[\d]/.test(String.fromCharCode(event.keyCode || event.which))) || event.which === 8;
 };
 },
});

但該事件存在一個問題,就是在中文輸入法的時候無法觸發(fā)事件,導(dǎo)致用戶可以輸入中文

oninput 事件

oninput 事件在用戶輸入時觸發(fā)

可在事件觸發(fā)時進行過濾,過濾掉那些不為數(shù)字的值,并重新綁定到輸入框上,解決了中文輸入法下的問題

Vue.directive('LimitInputNumber', {
 bind(el) {
  el.oninput = () => {
   el.children[0].value = el.children[0].value.replace(/\D/ig, '');
  };
 },
});

完整代碼

import Vue from 'vue';

Vue.directive('LimitInputNumber', {
 bind(el) {
  el.onkeypress = (event) => {
   return (/[\d]/.test(String.fromCharCode(event.keyCode || event.which))) || event.which === 8;
  };
  el.oninput = () => {
   el.children[0].value = el.children[0].value.replace(/\D/ig, '');
  };
 },
});

總結(jié)

到此這篇關(guān)于vue自定義指令限制輸入框輸入值的文章就介紹到這了,更多相關(guān)vue自定義指令限制輸入框輸入值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue項目如何部署到Tomcat服務(wù)器上

    Vue項目如何部署到Tomcat服務(wù)器上

    這篇文章主要介紹了Vue項目如何部署到Tomcat服務(wù)器上,Vue中自帶webpack,可以通過一行命令將項目打包,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • Vue中瀑布流布局與圖片加載優(yōu)化的實現(xiàn)

    Vue中瀑布流布局與圖片加載優(yōu)化的實現(xiàn)

    本文主要介紹了Vue中瀑布流布局與圖片加載優(yōu)化的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 詳解Vite的新體驗

    詳解Vite的新體驗

    這篇文章主要介紹了詳解Vite的新體驗,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • vue Treeselect下拉樹只能選擇第N級元素實現(xiàn)代碼

    vue Treeselect下拉樹只能選擇第N級元素實現(xiàn)代碼

    這篇文章主要介紹了vue Treeselect下拉樹只能選擇第N級元素實現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue3進行樣式Scoped和Global的設(shè)置方法

    Vue3進行樣式Scoped和Global的設(shè)置方法

    在 Vue 3 中,組件化開發(fā)成為了我們提升前端開發(fā)效率的利器,其中,樣式的管理也是一個至關(guān)重要的部分,在 Vue 中,我們會經(jīng)常使用兩種樣式作用域:Scoped 樣式和 Global 樣式,本文將通過示例代碼來介紹Vue3如何進行樣式Scoped和Global的設(shè)置,需要的朋友可以參考下
    2025-01-01
  • vue3中的ref和reactive定義數(shù)組方式

    vue3中的ref和reactive定義數(shù)組方式

    這篇文章主要介紹了vue3中的ref和reactive定義數(shù)組方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 使用Vue.js創(chuàng)建一個時間跟蹤的單頁應(yīng)用

    使用Vue.js創(chuàng)建一個時間跟蹤的單頁應(yīng)用

    這篇文章主要介紹了使用Vue.js創(chuàng)建一個時間跟蹤的單頁應(yīng)用的相關(guān)資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Vue3引入SVG圖標的流程步驟

    Vue3引入SVG圖標的流程步驟

    我們在開發(fā) Vue 項目的時候會使用一些前端組件庫,例如 Element、Ant Design 等,這些組件庫雖然方便,但是也有一些缺點,比如內(nèi)置的圖標太少,例如我們開發(fā)醫(yī)療、財務(wù)、工程等一些前端項目,內(nèi)置的圖標不能滿足我們的需求,所以我們常常在Vue項目中引入SVG圖標
    2024-09-09
  • vue.js指令v-for使用及索引獲取

    vue.js指令v-for使用及索引獲取

    這篇文章主要為大家詳細介紹了vue.js中v-for使用及索引獲取,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • vue2.0 與 bootstrap datetimepicker的結(jié)合使用實例

    vue2.0 與 bootstrap datetimepicker的結(jié)合使用實例

    本篇文章主要介紹了vue2.0 與 bootstrap datetimepicker的結(jié)合使用實例,非常具有實用價值,需要的朋友可以參考下
    2017-05-05

最新評論

琼海市| 万全县| 赞皇县| 东城区| 洪雅县| 昌吉市| 勐海县| 嘉祥县| 津南区| 鸡泽县| 西林县| 宜春市| 长乐市| 收藏| 巴中市| 防城港市| 肥东县| 阿合奇县| 遂宁市| 萝北县| 田东县| 房产| 富平县| 封丘县| 历史| 兴隆县| 玉林市| 如东县| 漳州市| 临沂市| 温泉县| 保亭| 凤城市| 古交市| 中卫市| 个旧市| 富民县| 长沙县| 克什克腾旗| 仲巴县| 图片|