el-select组件同时输出label和name的值,这优雅不?--vue3+ts

el-select组件同时输出label和name的值,实现的方法很多,有添加value-key=‘xxx’,有通过@change获取输出赋值(其实也差不多)。
试试的我方法:input隐藏域

附代码及结果:

<template>
  结果:{
  
  { formInline }}
  <el-form :inline="true" :model="formInline" class="demo-form-inline">
    <el-form-item label="optionName">
      <el-select
        v-model="formInline.optionVal"
        placeholder="Select"
        size="small"
        style="width: 240px"
      >
        <el-option
          v-for="(item, index) in options"
          :key="index"
          :label="item.label"
          :value="item.value"
        />
      </el-select>
      <!-- 隐藏于赋值Name -->
      <input
        type="hidden"
        :value="
          (formInline.optionLab = options.find(
            (o:any) => o.value == formInline.optionVal
          )?.label || '')
        "
      />
    </el-form-item>
    <el-form-item label="dateRange">
      <el-date-picker
        v-model="formI
### Vue 3 TypeScript 结合使用 Element Plus 表单组件 #### 创建项目结构 初始化带有TypeScript支持的Vue 3项目可以通过命令完成[^2]: ```bash npm init vite@latest vue3-element-admin --template vue-ts ``` 这会创建一个名为 `vue3-element-admin` 的新项目,其中包含了Vue 3TypeScript的支持。 #### 安装依赖项 安装必要的依赖包来集成Element Plus到项目中: ```bash npm install element-plus axios @types/axios ``` #### 设置全局样式文件 在项目的入口处(通常是main.ts),导入Element Plus的整体样式以及按需加载所需的组件: ```typescript import { createApp } from &#39;vue&#39; import App from &#39;./App.vue&#39; // 导入element plus css 文件 import &#39;element-plus/lib/theme-chalk/index.css&#39;; import ElementPlus from &#39;element-plus&#39;; const app = createApp(App); app.use(ElementPlus); app.mount(&#39;#app&#39;); ``` #### 构建表单模型数据绑定 定义用于双向绑定的数据对象,在setup函数内部声明响应式的属性: ```typescript <script setup lang="ts"> import { reactive, ref } from "vue"; interface FormModel { name?: string; region?: string; } let formLabelWidth = ref(&#39;80px&#39;) let formData = reactive<FormModel>({}); </script> ``` #### 设计表单项布局 使用ElForm标签包裹各个字段控件,并设置验证规则其他配置选项。下面是一个简单的例子展示了如何构建包含两个输入框的名字地区选择器的表单[^1]: ```html <template> <el-form :model="formData" label-width="formLabelWidth"> <el-form-item label="名字" > <el-input v-model="formData.name"/> </el-form-item> <el-form-item label="地区" prop="region"> <el-select v-model="formData.region" placeholder="请选择活动区域"> <el-option label="上海" value="shanghai"></el-option> <el-option label="北京" value="beijing"></el-option> </el-select> </el-form-item> <!-- 更多表单项... --> </el-form> </template> ``` 对于更复杂的场景比如需要对数类型的输入做特定格式化的情况,则可以参考提供的方法来自定义input事件处理器以满足业务逻辑需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值