一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - vue.js - Vue.js 帶下拉選項(xiàng)的輸入框(Textbox with Dropdown)組件

Vue.js 帶下拉選項(xiàng)的輸入框(Textbox with Dropdown)組件

2022-03-05 20:43yukiwu vue.js

這篇文章主要介紹了Vue.js 帶下拉選項(xiàng)的輸入框(Textbox with Dropdown)組件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

下拉選項(xiàng)輸入框 (Textbox with Dropdown) 是既允許用戶從下拉列表中選擇輸入又允許用戶自由鍵入輸入值。這算是比較常見的一種 UI 元素,可以為用戶提供候選項(xiàng)節(jié)省操作時(shí)間,也可以給可能存在的少數(shù)情況提供適配的可能。

本來想著這個(gè)組件比較常見應(yīng)該已經(jīng)有比較多現(xiàn)成的例子可以直接應(yīng)用,但是搜索了一圈發(fā)現(xiàn)很多類似的組件都具備了太多的功能,例如搜索,多選等等 (簡單說:太復(fù)雜了?。?。于是就想著還是自己動手寫一個(gè)簡單易用的,此處要感謝肥老板在我困惑時(shí)的鼎力相助。

這個(gè) UI 元素將被用于 Common Bar Width App 中。

Vue.js 帶下拉選項(xiàng)的輸入框(Textbox with Dropdown)組件

注冊組件

通過將封裝好的組件代碼復(fù)制粘貼來注冊全局組件。

設(shè)計(jì)的時(shí)候有考慮到輸入框可能存在不同的類型,例如文本輸入框,數(shù)值輸入框,百分?jǐn)?shù)輸入框等等。所以在封裝的代碼中會通過函數(shù) inputRule 來限制輸入。限制的方法是利用 Regex 進(jìn)行過濾。如果有其他類型,也可以通過修改 inputRule 中的過濾條件。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<script type="text/x-template" id="dropdown">
    <div class="dropdown" v-if="options">
        <!-- Dropdown Input -->
        <input  :type="type"
                :disabled="disabled"
                v-model="input_value"
                @focus="showOptions()"
                @blur="exit()"
                @keyup="keyMonitor"
                @input="input_value = inputRule(type)" />
...
</script>
<script>
    Vue.component('dropdown', {
        template: '#dropdown',
        props: {
            type: String,
            options: Array,
            disabled: Boolean,
            value: String
        },
...
        methods: {
            inputRule:function(type){
                var value;
                switch(type){
                    case 'text':
                        value = this.input_value.replace(/[^a-zA-Z0-9]/g,'');
                        break;
                    case 'number':
                        value = this.input_value.replace(/^(?![+-]?\d+(\.\d+)?$)/g,'');
                        break;
                    case 'percentage':
                        value = this.input_value.replace(/[^\d]/g,'');
                        value = value > 100 ? '100' : value;
                        value = value < 0 ? '0' : value;
                        break;
                    default:
                        console.log("no limitation");
                }
                return value;
            },
...
</script>

調(diào)用組件

添加自定義標(biāo)簽調(diào)用組件。

?
1
2
3
4
5
6
<dropdown   type = "text"
            :options = "text_options"
            :value = "text_value"
            :disabled = "text_disabled"
            @on_change_input_value = "onTextChange">
</dropdown>

傳遞數(shù)據(jù)

最后動態(tài)綁定數(shù)據(jù)到父級組件, props 中:

  • type: 輸入框的類型,現(xiàn)支持 text, number 和 percentage。
  • options: 輸入框下拉列表的選項(xiàng)
  • value: 輸入框的值
  • disabled: 是否禁止點(diǎn)擊輸入框

另外我們還需要在父級實(shí)例中定義事情,用于更新輸入框的值

on_change_input_value: 更新值

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
data: function () {
    return {
        text_value: 'ccc',
        text_disabled: false,
        text_options: [
            { id: 1, name: 'a' },
            { id: 2, name: 'bb' },
            { id: 3, name: 'ccc' },
            { id: 4, name: 'dddd' },
            { id: 5, name: 'eeeee' },
            { id: 6, name: 'fffff ' },
            { id: 7, name: 'gggggg' },
            { id: 8, name: 'hhhhhhh' },
            { id: 9, name: 'iiiiiiii' },
        ],
        ...
    }
},
...
methods: {
    onTextChange: function (new_text_value) {
        this.text_value = new_text_value;
    },
...
},

源代碼

GitHub

到此這篇關(guān)于Vue.js 帶下拉選項(xiàng)的輸入框(Textbox with Dropdown)組件的文章就介紹到這了,更多相關(guān)Vue.js 帶下拉選項(xiàng)的輸入框內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://www.cnblogs.com/yukiwu/p/14657775.html

延伸 · 閱讀

精彩推薦
  • vue.jsVue2.x-使用防抖以及節(jié)流的示例

    Vue2.x-使用防抖以及節(jié)流的示例

    這篇文章主要介紹了Vue2.x-使用防抖以及節(jié)流的示例,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下...

    Kyara6372022-01-25
  • vue.js梳理一下vue中的生命周期

    梳理一下vue中的生命周期

    看過很多人講vue的生命周期,但總是被繞的云里霧里,尤其是自學(xué)的同學(xué),可能js的基礎(chǔ)也不是太牢固,聽起來更是吃力,那我就已個(gè)人之淺見,以大白話...

    CRMEB技術(shù)團(tuán)隊(duì)7992021-12-22
  • vue.jsVue項(xiàng)目中實(shí)現(xiàn)帶參跳轉(zhuǎn)功能

    Vue項(xiàng)目中實(shí)現(xiàn)帶參跳轉(zhuǎn)功能

    最近做了一個(gè)手機(jī)端系統(tǒng),其中遇到了父頁面需要攜帶參數(shù)跳轉(zhuǎn)至子頁面的問題,現(xiàn)已解決,下面分享一下實(shí)現(xiàn)過程,感興趣的朋友一起看看吧...

    YiluRen丶4302022-03-03
  • vue.jsVue多選列表組件深入詳解

    Vue多選列表組件深入詳解

    這篇文章主要介紹了Vue多選列表組件深入詳解,這個(gè)是vue的基本組件,有需要的同學(xué)可以研究下...

    yukiwu6752022-01-25
  • vue.js詳解vue 表單綁定與組件

    詳解vue 表單綁定與組件

    這篇文章主要介紹了vue 表單綁定與組件的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下...

    Latteitcjz6432022-02-12
  • vue.js用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法

    用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法

    這篇文章主要介紹了用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下...

    Asiter7912022-01-22
  • vue.jsVue2.x 項(xiàng)目性能優(yōu)化之代碼優(yōu)化的實(shí)現(xiàn)

    Vue2.x 項(xiàng)目性能優(yōu)化之代碼優(yōu)化的實(shí)現(xiàn)

    這篇文章主要介紹了Vue2.x 項(xiàng)目性能優(yōu)化之代碼優(yōu)化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋...

    優(yōu)小U9632022-02-21
  • vue.jsVue中引入svg圖標(biāo)的兩種方式

    Vue中引入svg圖標(biāo)的兩種方式

    這篇文章主要給大家介紹了關(guān)于Vue中引入svg圖標(biāo)的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的...

    十里不故夢10222021-12-31
主站蜘蛛池模板: 午夜小视频免费 | 日韩在线视频一区二区三区 | 99在线免费观看 | 亚洲精品久久久久AV无码 | 国产ab| 处女摘花视频 | 俄罗斯女同和女同xx | 亚洲成年人免费网站 | 2021海角社区最新版 | 俄罗斯美女大逼 | futa文| 欧美一区二区三区免费观看视频 | 午夜dj免费视频观看社区 | 日本不卡不码高清免费观看 | 欧美日韩亚洲国内综合网俺 | 成年人在线播放视频 | 91大片淫黄大片在线天堂 | 无人区1免费完整观看 | 国产亚洲福利精品一区二区 | 欧洲vodafone精品性 | 久久久久久免费观看 | 国产里番 | 被黑人同学彻底征服全文小说阅读 | 亚1洲二区三区四区免费 | 国产自精品 | 男人jj视频 | 日韩不卡一区二区三区 | 白丝女仆被啪到深夜漫画 | 天美传媒tm0065| 日本玖玖视频 | 男男playh片在线观看 | 青草久久精品亚洲综合专区 | pregnant欧美孕交xxx | 国产亚洲小视频 | 国产亚洲精品日韩香蕉网 | 国产一线天 | 四虎影视色费永久在线观看 | 日本高清无吗 | 网站久久 | 97色伦亚洲自偷 | 天天性综合 |