当前位置: 首页 > news >正文

朝阳seo网站建设网站建设及推广文案

朝阳seo网站建设,网站建设及推广文案,济南网站设计公司,世纪佳缘网站开发公司前言 最近开发项目使用element-plus库内的select组件,其中有提供一个创建新的选项的用法,但是发现一些小问题,在此记录 版本 “element-plus”: “^2.3.9”, “vue”: “^3.3.4”, 问题 1、在options数据源中无数据的时候,在输入框…

前言

最近开发项目使用element-plus库内的select组件,其中有提供一个创建新的选项的用法,但是发现一些小问题,在此记录

版本

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

问题

1、在options数据源中无数据的时候,在输入框中输入要创建的选项,ele会自动帮我们选中第一条,然后回车后会自动给绑定值中push进一条数据进去
2、但是options数据源中有数据的时候,若输入框中的值可以匹配上数据源的话回车后会自动选中,但是再无数据的时候需要回车后创建数据却无法选中

解决办法

有数据源的情况下直接监听回车事件,再敲击回车后后获取到输入框中的值手动将值添加进去

代码如下

<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实例
const selectRef = ref(null)
// 监听select回车事件
const selectCreate = function() {// 当options数据源中无值的话,回车后elementplus是可以正常新增的,无需手动添加if (options.value.length === 0) return// 通过select实例获取到内部input节点const inputDom = selectRef.value.input// 通过input节点获取到输入值const domValue = inputDom.value// 过滤掉空的数据if (!domValue) return// 将输入值手动push进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="回车后创建" @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>

拓展

既然是创建新选项,但是在创建完成后数据源中却没有新增出来一条,不知道你们是否跟我有同样的疑问,可能是因为新创建出来的选项并非属于原有数据源所以ele开发人员才并未提供可以直接加入到数据源中的api吧
既然我们都可以通过获取实例的方式获取到input中当前输入的值了,那么直接改造一下,手动加进去不就行了吗
代码如下

<script setup>
import { ref } from 'vue'const options = ref([])
// 拓展,既然可以获取到数据框中的值了,那么在回车创建完选项后,顺带在数据源中也新增一条数据也是可以的,毕竟这样才更加符合创建了一个新的选项
const selectValue = ref([])
// 获取select实例
const selectRef = ref(null)
// 监听select回车事件
const selectCreate = function() {// 当options数据源中无值的话,回车后elementplus是可以正常新增的,无需手动添加,且监听到回车后input值也是空的if (options.value.length === 0) return// 通过select实例获取到内部input节点const inputDom = selectRef.value.input// 通过input节点获取到输入值const domValue = inputDom.value// 过滤掉空的数据if (!domValue) return// 将输入值手动push进selectValue中selectValue.value.push(domValue)// 手动在数据源中也新增一条进去options.value.push({value: selectRef.value.input.value,label: selectRef.value.input.value});// 最后将input中的值清空即可selectRef.value.input = ''
}
// 选项被选中后回调
const selectChange = function(seleItem) {const data = seleItem[seleItem.length - 1]if (!data) return// 判断数据源中没有的话,手动加入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="回车后创建" @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>
http://www.yayakq.cn/news/990888/

相关文章:

  • 南通网站排名方法政务网站建设工作计划结尾
  • wordpress网站下载文件wordpress logo
  • 建设电商网站的个人心得佛山网站建设排名
  • 广东网站搭建如何做wordpress文章页
  • 内蒙古建设安全监督站的网站智能网站推广优化
  • 网站首页制作网站wordpress主题导航调用
  • 爱站工具包官网下载wordpress缓存命中率
  • 你的网站尚未备案 根据高端品牌运动鞋
  • 网站源码和模板的区别163网易企业邮箱注册
  • 代码命名 网站wordpress 首页文件夹
  • 运城做网站电话佛山o2o网站建设
  • 买衣服的网站排行榜淘宝网官方网站免费下载
  • 页面看不到网站深圳手机网站制作公司
  • 济宁做公司网站做网站首页图的规格
  • 网站建设排名政务WordPress仿app主题
  • 网站建设的工作人员响应式网站的优点
  • 如何黑网站沈阳网站建设思路
  • 如何做婚恋网站网站制作找哪家公司好
  • 青阳网站建设做logo那个网站
  • 专业做物流公司网站销售网站建设价格
  • 培训网站方案上那个网站找手工活做
  • 网站建设用php建设优点有没有专门做家纺的网站
  • 冀州做网站的公司来年做哪些网站致富
  • 公司建立网站的作用有东台做网站公司
  • 建好网站后如何向里面加东西百度网站建设公司
  • 网站图片加alt标签现在有哪些免费推广平台
  • 做网站不想用微软雅黑了类似wordpress的软件
  • 深南花园裙楼 网站建设电脑咋建网站
  • 简单网站后台模板衡阳建设学校官方网站
  • 四川省建设厅门户网站广告设计公司服务承诺