VUE & Element UI el-select undefined

本文探讨了Vue框架下el-select组件的change事件绑定Bug及其解决方案,同时揭示了ElementUI中el-form-item与col标签使用误区。重点在于如何正确处理v-model绑定和click事件,以及合理嵌套col标签以保持组件交互性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VUE & Element UI

el-select 组件 通过 change 绑定获取 optnion 值 Bug 永远返回 undefined,通过 option 绑定 click.native 解决 ;

<el-form-item label="编号ID" prop="snId">
          <el-select
            v-model="form.snId"
            value-key="id"
            placeholder="请选择产品"
            filterable
            remote
            :remote-method="remoteQuerySnIdSelect"
            @blur="selectSnIdSelectBlur"
          >
            <el-option
              v-for="item in snIdOptions"
              :key="item.id"
              :label="item.product"
              :value="item.inSn"
              @click.native="changeSnIdSelect(item)"
            ></el-option>
          </el-select>
        </el-form-item>

Element UI Form Input 使用 el-col 来调整某些项目为两列,

直接通过 el-col 包含元素会导致 元素不能操作;必须将el-col 放置到 el-row 标签内;
el-row el-col

### Element UI el-select 自定义样式方法及示例 #### 使用 `class` 属性自定义外部样式 对于简单的样式调整,可以直接给 `&lt;el-select&gt;` 或者其子元素添加类名并通过 CSS 来修改外观。例如改变整个选择框的颜色、宽度等属性。 ```html &lt;template&gt; &lt;div class=&quot;custom-select&quot;&gt; &lt;el-select v-model=&quot;value&quot; placeholder=&quot;请选择&quot; class=&quot;select-style&quot;&gt; &lt;el-option label=&quot;选项一&quot; value=&quot;shanghai&quot;&gt;&lt;/el-option&gt; &lt;el-option label=&quot;选项二&quot; value=&quot;beijing&quot;&gt;&lt;/el-option&gt; &lt;/el-select&gt; &lt;/div&gt; &lt;/template&gt; &lt;style scoped&gt; .custom-select .select-style { width: 200px; background-color: #f8f8ff; /* 修改背景颜色 */ } &lt;/style&gt; ``` #### 覆盖内部组件样式 如果需要更深入地定制样式,则可以通过全局样式表覆盖 element-ui 默认样式。注意这样做可能会影响其他地方相同类型的控件显示效果,因此建议使用特定的选择器来限定作用范围[^1]。 ```css /* 针对 select 下拉列表项的高度进行设置 */ .el-select-dropdown__item { line-height: 36px !important; } /* 设置下拉菜单弹层的宽度 */ .el-scrollbar__wrap { max-width: 300px!important; } ``` #### 利用插槽 (slot) 实现复杂布局 当内置样式无法满足需求时,还可以利用 Vue 的 slot 特性来自由组合 HTML 结构并施加个性化设计。比如向 option 中插入图标或其他交互元素[^3]。 ```html &lt;template&gt; &lt;el-select v-model=&quot;value&quot; filterable placeholder=&quot;请选择&quot;&gt; &lt;!-- 插入自定义按钮 --&gt; &lt;el-option :value=&quot;undefined&quot; disabled style=&quot;height:auto;&quot;&gt; &lt;button type=&quot;button&quot;&gt;点击加载更多...&lt;/button&gt; &lt;/el-option&gt; &lt;el-option v-for=&quot;(item, index) in options&quot; :key=&quot;index&quot; :label=&quot;item.label&quot; :value=&quot;item.value&quot;&gt; {{ item.label }} &lt;/el-option&gt; &lt;/el-select&gt; &lt;/template&gt; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值