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

antd?select?多選限制個(gè)數(shù)的實(shí)現(xiàn)代碼

 更新時(shí)間:2022年11月09日 11:30:47   作者:一晌貪歡i  
這篇文章主要介紹了antd?select?多選限制個(gè)數(shù),實(shí)現(xiàn)思路和核心代碼都很簡(jiǎn)單,其中核心代碼在于disabled,代碼簡(jiǎn)單易懂需要的朋友可以參考下

antd select 多選限制個(gè)數(shù)

直接給出源碼

<template>
       <a-select
              v-model="college"
              mode="multiple"
              :maxTagCount="2"
              autocomplete="off"
              style="width: 252px;margin-top:10px;margin-right: 28px"
              :getPopupContainer="triggerNode => triggerNode.parentNode"
            >
              <a-select-option
                v-for="item in collegeList"
                :key="item.id"
                :value="item.name"
                :disabled="college.length >= 5 && college.findIndex(o => o === item.name) === -1"
              >
                {{ item.name }}
              </a-select-option>
          </a-select>
</template>
 <script>  
	 data() {
	    return { 
	      collegeList: [],
	      college: []
	    }
	  },
 </script>  

其中核心代碼在于disabled
其中 collegeList數(shù)據(jù)結(jié)構(gòu)

[
  {
    "city": "北京市",
    "code": "4111010001",
    "createBy": null,
    "createTime": null,
    "department": "教育部",
    "id": 1,
    "level": "本科",
    "name": "北京大學(xué)",
    "updateBy": null,
    "updateTime": null
  },
  {
    "city": "北京市",
    "code": "4111010002",
    "createBy": null,
    "createTime": null,
    "department": "教育部",
    "id": 2,
    "level": "本科",
    "name": "中國(guó)人民大學(xué)",
    "updateBy": null,
    "updateTime": null
  },
  {
    "city": "北京市",
    "code": "4111010003",
    "createBy": null,
    "createTime": null,
    "department": "教育部",
    "id": 3,
    "level": "本科",
    "name": "清華大學(xué)",
    "updateBy": null,
    "updateTime": null
  }
]

再看一個(gè)復(fù)雜一點(diǎn)的例子:

		<a-select
              v-model="safeGroup"
              mode="multiple"
              placeholder="請(qǐng)選擇安全組"
              class="long-input"
              :getPopupContainer="triggerNode => triggerNode.parentNode"
              @change="handleSafeChange"
            >
              <a-select-option
                v-for="item in SafeGroupList"
                :key="item.safeGroupId"
                :value="JSON.stringify(item)"
                :disabled="
                  safeGroup.length >= 5 &&
                  safeGroup.findIndex(o => JSON.parse(o).safeGroupId === item.safeGroupId) === -1
                "
              >
                <ellipsis :length="20"> {{ item.safeGroupName }}</ellipsis>
              </a-select-option>
             
            </a-select>

其中對(duì)v-model綁定的數(shù)據(jù)處理在@chang方法里

handleSafeChange(e) {
    if (e) {
      this.dispalySafe = false
      this.safeGroup = e
      const arr1 = e.map(x => {
        return JSON.parse(x)
      })
      const arr2 = e.map(x => {
        return JSON.parse(x).safeGroupId
      })
      this.$emit('handleSafeChange', arr2, arr1)
    }
  },

關(guān)于antd Select 限制選擇個(gè)數(shù)的解決方案

應(yīng)用場(chǎng)景描述:

Select 被form 所包裹,且被getFieldDecorator修飾。所以值的改變應(yīng)該通過form的setFieldsValue方法。

Select模式肯定會(huì)是multiple。且以最多三個(gè)值舉例。

解決思路如下:

1 起初是想在Select的onchange事件中判斷values的數(shù)量,數(shù)量大于三個(gè)的時(shí)候來重新setFieldsValue;且把最后的選項(xiàng)值替換成剛剛選擇的值。

后來發(fā)現(xiàn)setFieldsValue方法不起作用,Select的值會(huì)一直增加。后來想想可能是 setFieldsValue與onchange 沖突,通過setFieldsValue 無法改變onchange后的值。

2 最后通過重新查看文檔。發(fā)現(xiàn)還有一個(gè)方法可用,即 validator。驗(yàn)證值,通過驗(yàn)證所選值的數(shù)量是否大于三個(gè),然后重新setFieldsValue ;發(fā)現(xiàn)此法可行。從而解決該疑難雜癥。

好,最后附上代碼供參考:

changeValues = (rule ,value , callback)=> {

const { setFieldsValue } = this.props.form ;

let newArr ;

if (value.length > 3){

newArr = [].concat(value.slice(0,2), value.slice(-1) ) ;

setFieldsValue({

"languages" : newArr ,

})

callback(‘最多選擇三種語言‘)

} else {

newArr = value ;

callback()

}

}

{getFieldDecorator(‘languages‘, {

rules:[{required: true,message : ‘請(qǐng)選擇三種語言‘,

validator : changeValues

}],

validateTrigger : ‘onChange‘,

})(

1

2

3

4

5

)}

到此這篇關(guān)于antd select 多選限制個(gè)數(shù)的文章就介紹到這了,更多相關(guān)antd select 限制個(gè)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue.js?中的父子組件通信方式實(shí)例教程

    Vue.js?中的父子組件通信方式實(shí)例教程

    在 Vue.js 中,父子組件通信是非常重要的,在本文中,我們討論了 Vue.js 中父子組件通信的幾種方式,包括使用 props 傳遞數(shù)據(jù)、使用 Sync 修飾符實(shí)現(xiàn)雙向綁定、使用自定義事件傳遞數(shù)據(jù)、使用 $refs 訪問子組件實(shí)例以及使用 $children 和 $parent 訪問父子組件實(shí)例
    2023-09-09
  • vue項(xiàng)目如何刪除無用的依賴詳解

    vue項(xiàng)目如何刪除無用的依賴詳解

    vue是目前非常流行的前端開發(fā)框架,隨著技術(shù)的不斷更新,我們也需要更新我們的vue項(xiàng)目,這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目如何刪除無用的依賴的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • 使用vuetify實(shí)現(xiàn)全局v-alert消息通知的方法

    使用vuetify實(shí)現(xiàn)全局v-alert消息通知的方法

    使用強(qiáng)大的Vuetify開發(fā)前端頁面,結(jié)果發(fā)現(xiàn)官方?jīng)]有提供簡(jiǎn)便的全局消息通知組件,所以自己動(dòng)手寫了一個(gè)簡(jiǎn)單的組件,接下來通過本文給大家介紹使用vuetify實(shí)現(xiàn)全局v-alert消息通知的詳細(xì)代碼,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • vue如何實(shí)現(xiàn)文件上傳及預(yù)覽

    vue如何實(shí)現(xiàn)文件上傳及預(yù)覽

    這篇文章主要介紹了vue如何實(shí)現(xiàn)文件上傳及預(yù)覽問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue2 輪播圖slide組件實(shí)例代碼

    Vue2 輪播圖slide組件實(shí)例代碼

    這篇文章主要介紹了Vue2 輪播圖slide組件實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-05-05
  • Vue如何實(shí)現(xiàn)簡(jiǎn)單的時(shí)間軸與時(shí)間進(jìn)度條

    Vue如何實(shí)現(xiàn)簡(jiǎn)單的時(shí)間軸與時(shí)間進(jìn)度條

    作為一個(gè)前端初學(xué)者,公司項(xiàng)目中前端需要一個(gè)進(jìn)度條,所以下面這篇文章主要給大家介紹了關(guān)于Vue如何實(shí)現(xiàn)簡(jiǎn)單的時(shí)間軸與時(shí)間進(jìn)度條的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 快速解決electron-builder打包時(shí)下載依賴慢的問題

    快速解決electron-builder打包時(shí)下載依賴慢的問題

    使用 Electron-builder 打包,有時(shí)會(huì)在下載Electron、nsis、winCodeSign的過程中 Timeout 導(dǎo)致打包失敗,本文給大家分享快速解決electron-builder打包時(shí)下載依賴慢的問題,感興趣的朋友一起看看吧
    2024-02-02
  • vue實(shí)現(xiàn)導(dǎo)出excel的多種方式總結(jié)

    vue實(shí)現(xiàn)導(dǎo)出excel的多種方式總結(jié)

    在Vue中實(shí)現(xiàn)導(dǎo)出Excel有多種方式,可以通過前端實(shí)現(xiàn),也可以通過前后端配合實(shí)現(xiàn),這篇文章將為大家詳細(xì)介紹幾種常用的實(shí)現(xiàn)方式,需要的可以參考下
    2023-08-08
  • Vue如何使用CSS自定義變量

    Vue如何使用CSS自定義變量

    這篇文章主要介紹了Vue如何使用CSS自定義變量,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-05-05
  • 使用webpack-obfuscator進(jìn)行代碼混淆及報(bào)錯(cuò)解決過程

    使用webpack-obfuscator進(jìn)行代碼混淆及報(bào)錯(cuò)解決過程

    隨著前端應(yīng)用的復(fù)雜度增加,保護(hù)客戶端的JavaScript代碼變得更為重要,webpack-obfuscator插件通過對(duì)代碼進(jìn)行混淆,如變量重命名、字符串加密等,提高代碼的保密性,防止源碼被輕易查看或修改
    2024-10-10

最新評(píng)論

阳曲县| 泸溪县| 溧水县| 古交市| 临颍县| 遵化市| 九寨沟县| 翁牛特旗| 玉环县| 垦利县| 综艺| 万州区| 金山区| 纳雍县| 始兴县| 平和县| 青海省| 达日县| 当涂县| 英山县| 隆德县| 嘉义市| 朝阳区| 拜泉县| 博爱县| 会同县| 桂平市| 天门市| 叙永县| 巴东县| 固安县| 五峰| 加查县| 名山县| 九江县| 屯留县| 宝兴县| 察隅县| 富阳市| 青川县| 和顺县|