亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2021年04月17日 11:00:20   作者:yukiwu  
這篇文章主要介紹了Vue.js 帶下拉選項的輸入框(Textbox with Dropdown)組件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

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

這個 UI 元素將被用于 Common Bar Width App 中。

注冊組件

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

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

<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>

調用組件

添加自定義標簽調用組件。

<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: 輸入框下拉列表的選項
  • value: 輸入框的值
  • disabled: 是否禁止點擊輸入框

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

on_change_input_value: 更新值

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

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

相關文章

  • Vue.js中的computed功能設計

    Vue.js中的computed功能設計

    computed作為計算屬性其作用是描述響應式數(shù)據(jù)的復雜邏輯計算,當所依賴的響應式數(shù)據(jù)發(fā)生改變時計算屬性會重新計算,更新邏輯計算的結果,這篇文章主要介紹了Vue.js中的computed的功能設計,需要的朋友可以參考下
    2023-06-06
  • 使用 JSON.stringify() 列化一個Error

    使用 JSON.stringify() 列化一個Error

    這篇文章主要介紹了使用 JSON.stringify() 列化一個Error,需要的朋友可以參考下
    2023-10-10
  • 基于vite2+vue3制作個招財貓游戲

    基于vite2+vue3制作個招財貓游戲

    端午將至,大家都開始吃粽子了么?本文將用vite2與vue3開發(fā)出一個招財貓小游戲,在圖案不停滾動的同時選出可以轉出不同的素材最終得到粽子獎勵,康康你能用多少次才會轉出自己喜愛口味的粽子吧
    2022-05-05
  • Vue通過axios發(fā)送ajax請求基礎演示

    Vue通過axios發(fā)送ajax請求基礎演示

    這篇文章主要介紹了Vue通過axios發(fā)送ajax請求基礎演示,包括了axios發(fā)送簡單get請求,axios get傳參,axios發(fā)送post請求等基礎代碼演示需要的朋友可以參考下
    2023-02-02
  • 詳解vue身份認證管理和租戶管理

    詳解vue身份認證管理和租戶管理

    本篇開始功能模塊的開發(fā),首先完成ABP模板自帶的身份認證管理模塊和租戶管理模塊。同樣的,參考ABP的Angular版本來做。
    2021-05-05
  • vue3開啟攝像頭并進行拍照的實現(xiàn)示例

    vue3開啟攝像頭并進行拍照的實現(xiàn)示例

    本文主要介紹了vue3開啟攝像頭并進行拍照的實現(xiàn)示例,主要是使用navigator.mediaDevices.getUserMedia這個API來實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • vue實現(xiàn)一個獲取按鍵展示快捷鍵效果的Input組件

    vue實現(xiàn)一個獲取按鍵展示快捷鍵效果的Input組件

    這篇文章主要介紹了vue如何實現(xiàn)一個獲取按鍵展示快捷鍵效果的Input組件,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2021-01-01
  • vue3響應式實現(xiàn)readonly從零開始教程

    vue3響應式實現(xiàn)readonly從零開始教程

    這篇文章主要為大家介紹了vue3響應式實現(xiàn)readonly從零開始教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 詳解Vuex中getters的使用教程

    詳解Vuex中getters的使用教程

    在Store倉庫里,state就是用來存放數(shù)據(jù)。如果很多組件都使用這個過濾后的數(shù)據(jù),我們是否可以把這個數(shù)據(jù)抽提出來共享?這就是getters存在的意義。我們可以認為,getters是store的計算屬性。本文將具體介紹一下getters的使用教程,需要的可以參考一下
    2022-01-01
  • vue時間格式總結以及轉換方法詳解

    vue時間格式總結以及轉換方法詳解

    項目中后臺返回的時間有多種形式,時間戳、ISO標準時間格式等,我們需要轉化展示成能看的懂得時間格式,下面這篇文章主要給大家介紹了關于vue時間格式總結以及轉換方法的相關資料,需要的朋友可以參考下
    2022-12-12

最新評論