国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

解決element的select組件創(chuàng)建新的選項(xiàng)可多選且opitions數(shù)據(jù)源中有數(shù)據(jù)的情況下,回車不能自動(dòng)選中創(chuàng)建的問題

這篇具有很好參考價(jià)值的文章主要介紹了解決element的select組件創(chuàng)建新的選項(xiàng)可多選且opitions數(shù)據(jù)源中有數(shù)據(jù)的情況下,回車不能自動(dòng)選中創(chuàng)建的問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

最近開發(fā)項(xiàng)目使用element-plus庫(kù)內(nèi)的select組件,其中有提供一個(gè)創(chuàng)建新的選項(xiàng)的用法,但是發(fā)現(xiàn)一些小問題,在此記錄

版本

“element-plus”: “^2.3.9”,
“vue”: “^3.3.4”,

問題

1、在options數(shù)據(jù)源中無(wú)數(shù)據(jù)的時(shí)候,在輸入框中輸入要?jiǎng)?chuàng)建的選項(xiàng),ele會(huì)自動(dòng)幫我們選中第一條,然后回車后會(huì)自動(dòng)給綁定值中push進(jìn)一條數(shù)據(jù)進(jìn)去
2、但是options數(shù)據(jù)源中有數(shù)據(jù)的時(shí)候,若輸入框中的值可以匹配上數(shù)據(jù)源的話回車后會(huì)自動(dòng)選中,但是再無(wú)數(shù)據(jù)的時(shí)候需要回車后創(chuàng)建數(shù)據(jù)卻無(wú)法選中

解決辦法

有數(shù)據(jù)源的情況下直接監(jiān)聽回車事件,再敲擊回車后后獲取到輸入框中的值手動(dòng)將值添加進(jìn)去

代碼如下

<script setup>
import { ref } from 'vue'
const options = ref([
  {
    value: 'HTML',
    label: 'HTML',
  },
  {
    value: 'CSS',
    label: 'CSS',
  },
  {
    value: 'JavaScript',
    label: 'JavaScript',
  },
])
const selectValue = ref([])
// 獲取select實(shí)例
const selectRef = ref(null)
// 監(jiān)聽select回車事件
const selectCreate = function() {
  // 當(dāng)options數(shù)據(jù)源中無(wú)值的話,回車后elementplus是可以正常新增的,無(wú)需手動(dòng)添加
  if (options.value.length === 0) return
  // 通過select實(shí)例獲取到內(nèi)部input節(jié)點(diǎn)
  const inputDom = selectRef.value.input
  // 通過input節(jié)點(diǎn)獲取到輸入值
  const domValue = inputDom.value
  // 過濾掉空的數(shù)據(jù)
  if (!domValue) return
  // 將輸入值手動(dòng)push進(jìn)selectValue中
  selectValue.value.push(domValue)
  // 最后將input中的值清空即可
  selectRef.value.input = ''
}



</script>

<template>
  <el-select ref="selectRef" v-model="selectValue" multiple filterable allow-create default-first-option :reserve-keyword="false" placeholder="回車后創(chuàng)建" @keyup.enter.native="selectCreate">
    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"/>
  </el-select>
</template>

<style scoped>
</style>

拓展

既然是創(chuàng)建新選項(xiàng),但是在創(chuàng)建完成后數(shù)據(jù)源中卻沒有新增出來一條,不知道你們是否跟我有同樣的疑問,可能是因?yàn)樾聞?chuàng)建出來的選項(xiàng)并非屬于原有數(shù)據(jù)源所以ele開發(fā)人員才并未提供可以直接加入到數(shù)據(jù)源中的api吧
既然我們都可以通過獲取實(shí)例的方式獲取到input中當(dāng)前輸入的值了,那么直接改造一下,手動(dòng)加進(jìn)去不就行了嗎
代碼如下文章來源地址http://www.zghlxwxcb.cn/news/detail-672182.html

<script setup>
import { ref } from 'vue'

const options = ref([])
// 拓展,既然可以獲取到數(shù)據(jù)框中的值了,那么在回車創(chuàng)建完選項(xiàng)后,順帶在數(shù)據(jù)源中也新增一條數(shù)據(jù)也是可以的,畢竟這樣才更加符合創(chuàng)建了一個(gè)新的選項(xiàng)
const selectValue = ref([])
// 獲取select實(shí)例
const selectRef = ref(null)
// 監(jiān)聽select回車事件
const selectCreate = function() {
  // 當(dāng)options數(shù)據(jù)源中無(wú)值的話,回車后elementplus是可以正常新增的,無(wú)需手動(dòng)添加,且監(jiān)聽到回車后input值也是空的
  if (options.value.length === 0) return
  // 通過select實(shí)例獲取到內(nèi)部input節(jié)點(diǎn)
  const inputDom = selectRef.value.input
  // 通過input節(jié)點(diǎn)獲取到輸入值
  const domValue = inputDom.value
  // 過濾掉空的數(shù)據(jù)
  if (!domValue) return
  // 將輸入值手動(dòng)push進(jìn)selectValue中
  selectValue.value.push(domValue)
  // 手動(dòng)在數(shù)據(jù)源中也新增一條進(jìn)去
  options.value.push({
    value: selectRef.value.input.value,
    label: selectRef.value.input.value
  });
  // 最后將input中的值清空即可
  selectRef.value.input = ''
}
// 選項(xiàng)被選中后回調(diào)
const selectChange = function(seleItem) {
  const data = seleItem[seleItem.length - 1]
  if (!data) return
  // 判斷數(shù)據(jù)源中沒有的話,手動(dòng)加入
  if (options.value.every(item => item.value !== data)) {
    options.value.push({
      value: data,
      label: data
    });
  }
}


</script>

<template>
  <el-select ref="selectRef" v-model="selectValue" multiple filterable allow-create default-first-option :reserve-keyword="false" placeholder="回車后創(chuàng)建" @keyup.enter.native="selectCreate" @change="selectChange">
    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"/>
  </el-select>
</template>

<style scoped>
</style>


到了這里,關(guān)于解決element的select組件創(chuàng)建新的選項(xiàng)可多選且opitions數(shù)據(jù)源中有數(shù)據(jù)的情況下,回車不能自動(dòng)選中創(chuàng)建的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 解決Element Plus中Select在El Dialog里層級(jí)過低的問題(修改select選項(xiàng)框樣式)

    解決Element Plus中Select在El Dialog里層級(jí)過低的問題(修改select選項(xiàng)框樣式)

    Element Plus是Vue.js的一套基于Element UI的組件庫(kù),提供了豐富的組件用于構(gòu)建現(xiàn)代化的Web應(yīng)用程序。其中, el-select 是一個(gè)常用的下拉選擇器組件,但在某些情況下,當(dāng) el-select 組件嵌套在 el-dialog (對(duì)話框)組件中時(shí),可能會(huì)出現(xiàn)層級(jí)過低的問題。本文將介紹如何使用 popper-cla

    2024年02月14日
    瀏覽(21)
  • vue2引入Element UI組件去創(chuàng)建新的頁(yè)面的詳細(xì)步驟

    vue2引入Element UI組件去創(chuàng)建新的頁(yè)面的詳細(xì)步驟

    目錄 一、Element UI介紹 Element UI的特點(diǎn): 二、下載配置Element UI (零)創(chuàng)建vue項(xiàng)目 (一)下載Element UI依賴?? (二)全局文件main.js中引入Element UI 三、刪除多余的東西? (一)刪除App.vue多余的? (二)刪除多余的頁(yè)面? (三)刪除router路由多余的? 四、新建vue頁(yè)面 (一)新建

    2024年02月14日
    瀏覽(20)
  • vue element select下拉框樹形多選

    vue element select下拉框樹形多選

    components 文件下新建 SelectTree文件 index.vue SelectTree index.vue 使用:

    2024年02月13日
    瀏覽(23)
  • vue3+element-plus實(shí)現(xiàn)表格多選功能(可以清除選項(xiàng)或分頁(yè)保留選項(xiàng))

    vue3+element-plus實(shí)現(xiàn)表格多選功能(可以清除選項(xiàng)或分頁(yè)保留選項(xiàng))

    如圖所示,在實(shí)際開發(fā)中,數(shù)據(jù)量大的表格基本都添加上了分頁(yè)功能,每個(gè)頁(yè)面請(qǐng)求的數(shù)據(jù)回交換更新,第一頁(yè)的選中效果在跳轉(zhuǎn)至第二頁(yè)后,如果沒有做相關(guān)處理,選中項(xiàng)會(huì)被清空,具體解決方法如下 在需要處理的表格標(biāo)簽中加上 :row-key=\\\"getRowKeys\\\" 以及 @selection-change=“ha

    2024年02月12日
    瀏覽(120)
  • Element-UI el-select多選表單校驗(yàn)問題

    在使用 el-select 多選下拉菜單配置表單校驗(yàn)時(shí), 如果form表單綁定的form對(duì)象對(duì)應(yīng)屬性值為空字符串或者null(其他未嘗試),表單中的多選下拉框會(huì)立刻執(zhí)行校驗(yàn)并彈出校驗(yàn)信息,代碼如下: 正確方式如下: 將多選下拉框?qū)?yīng)的屬性值默認(rèn)值設(shè)置未空數(shù)組即可

    2024年02月16日
    瀏覽(26)
  • 關(guān)于Element-UI el-select多選表單校驗(yàn)問題

    ???在使用 el-select 多選下拉菜單配置表單校驗(yàn)時(shí), 如果form表單綁定的form對(duì)象對(duì)應(yīng)屬性值為空字符串或者null(其他未嘗試),表單中的多選下拉框會(huì)立刻執(zhí)行校驗(yàn)并彈出校驗(yàn)信息,代碼如下: 正確方式如下: 將多選下拉框?qū)?yīng)的屬性值默認(rèn)值設(shè)置未空數(shù)組即可

    2024年02月11日
    瀏覽(31)
  • Element-UI el-select 多選菜單換行撐開

    Element-UI el-select 多選菜單換行撐開

    問題描述: ??????????Element-UI el-select 多選菜單換行撐開顯示破壞整體樣式 ?問題解決: ????????添加如下樣式: ?????????若出現(xiàn)滾動(dòng)條樣式不好看,可以更改樣式,和elementui保持一致。 ? ? ? ?

    2024年02月16日
    瀏覽(23)
  • uni-app多選select組件,兼容多平臺(tái)小程序、H5

    uni-app多選select組件,兼容多平臺(tái)小程序、H5

    ? ? ? 目錄 介紹 平臺(tái)差異說明 使用方式 安裝 引入 基本使用 默認(rèn)選中項(xiàng)(回顯) 配置label、value對(duì)應(yīng)的key名稱 獲取點(diǎn)擊確認(rèn)后的結(jié)果 完整示例 API Props Option Attributes Slot Events 多選select組件目前只支持多選,單選請(qǐng)用單選select組件 支持配置段 兼容多平臺(tái)小程序、H5

    2024年02月09日
    瀏覽(188)
  • el-select 下拉框全選、多選的幾種方式組件

    el-select 下拉框全選、多選的幾種方式組件

    組件一、 基礎(chǔ)多選 適用性較廣的基礎(chǔ)多選,用 Tag 展示已選項(xiàng) 為 el-select 設(shè)置 multiple 屬性即可啟用多選,此時(shí) v-model 的值為當(dāng)前選中值所組成的數(shù)組。默認(rèn)情況下選中值會(huì)以 Tag 的形式展現(xiàn),你也可以設(shè)置 collapse-tags 屬性將它們合并為一段文字。 ?組件二、el-select 下拉框多

    2024年02月07日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包