elementui 表单 el-form 的那些使用小技巧

本文介绍了如何在Vue的el-form-item中使用自定义slot标签添加图标,并通过native属性绑定点击事件。展示了如何移除原有label并用图标和文字组合形成新的交互形式。

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

1. el-form-item的label旁加icon

去掉原先 el-form-item 上的 label,使用 slot= label 自定义即可。

<el-form-item prop="任务名称" required>
  <span slot="label">
    <i class="el-icon-connection"></i>
    <span style="color: #46a0fc;"> 任务名称 </span>
  </span>
</el-form-item>

2. 为 el-form-item 添加点击事件

给 Vue 组件绑定事件的时候,要加上native,否则不起作用,如果是普通的html元素,就不需要。

<el-form-item @click.native="showRelatedDemandModal">
  <span slot="label">
    <i class="el-icon-connection"></i>
    <span style="color: #46a0fc">
      任务名称
    </span>
  </span>
</el-form-item>
<el-form :model="MAFLForm" ref="MAFLForm" size="small" inline="true" v-show="MAFLShowCard"> <el-form-item label="纸箱"> <el-checkbox v-model="MAFLForm.WX">外箱</el-checkbox> <el-checkbox v-model="MAFLForm.ZH">中盒</el-checkbox> <el-checkbox v-model="MAFLForm.NH">内盒</el-checkbox> <el-checkbox v-model="MAFLForm.CH">彩盒</el-checkbox> <el-checkbox v-model="MAFLForm.GB">隔板</el-checkbox> <el-checkbox v-model="MAFLForm.BH">白盒</el-checkbox> <el-checkbox v-model="MAFLForm.ZSH">展示盒</el-checkbox> <el-checkbox v-model="MAFLForm.CX">衬箱</el-checkbox> </el-form-item> <el-form-item label="条码"> <el-checkbox v-model="MAFLForm.CPTM">产品条码</el-checkbox> <el-checkbox v-model="MAFLForm.ZBZTM">中包装条码</el-checkbox> <el-checkbox v-model="MAFLForm.WXTM">外箱条码</el-checkbox> <el-checkbox v-model="MAFLForm.NHTM">内盒条码</el-checkbox> </el-form-item> <el-form-item label="胶袋" prop="JD"> <el-checkbox v-model="MAFLForm.JD"></el-checkbox> </el-form-item> <el-form-item label="说明书" prop="SMS"> <el-checkbox v-model="MAFLForm.SMS"></el-checkbox> </el-form-item> <el-form-item label="彩标" prop="CB"> <el-checkbox v-model="MAFLForm.CB"></el-checkbox> </el-form-item> <el-form-item label="白纸" prop="BZ"> <el-checkbox v-model="MAFLForm.BZ"></el-checkbox> </el-form-item> <el-form-item label="封胶带" prop="FJD"> <el-checkbox v-model="MAFLForm.FJD"></el-checkbox> </el-form-item> <el-form-item label="打包带" prop="DBD"> <el-checkbox v-model="MAFLForm.DBD"></el-checkbox> </el-form-item> <el-form-item label="彩卡" prop="CK"> <el-checkbox v-model="MAFLForm.CK"></el-checkbox> </el-form-item> <el-form-item label="吊牌" prop="DP"> <el-checkbox v-model="MAFLForm.DP"></el-checkbox> </el-form-item> <el-form-item label="其它配件" prop="QTPJ"> <el-checkbox v-model="MAFLForm.QTPJ"></el-checkbox> </el-form-item> <el-form-item label="中包装袋" prop="ZBZD"> <el-checkbox v-model="MAFLForm.ZBZD"></el-checkbox> </el-form-item> <el-form-item label="硅胶" prop="GJ"> <el-checkbox v-model="MAFLForm.GJ"></el-checkbox> </el-form-item> <el-form-item label="PVC盒" prop="PVCH"> <el-checkbox v-model="MAFLForm.PVCH"></el-checkbox> </el-form-item> <el-form-item label="泡沫" prop="PM"> <el-checkbox v-model="MAFLForm.PM"></el-checkbox> </el-form-item> <el-form-item label="气泡纸" prop="QPZ"> <el-checkbox v-model="MAFLForm.QPZ"></el-checkbox> </el-form-item> <el-form-item label="收缩膜" prop="SSM"> <el-checkbox v-model="MAFLForm.SSM"></el-checkbox> </el-form-item> <el-form-item> <el-button type="primary" size="mini" @click="handleSaveMAFL">保存</el-button> </el-form-item> </el-form> 为什么将MAFLShowCard的值设为true后form表单不显示
03-15
rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], dialogName: [ { required: true, message: '请选择小助理', trigger: 'change' } ], nickname: [ { required: true, message: '请输入用户名', trigger: 'blur' }, // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], } <el-drawer :title="formType === 'add' ? '新增' : '编辑'" :visible.sync="formDrawerVisible" :direction="drawerDirection" :before-close="closeFormDrawer" size="50%" > <el-form @submit.prevent label-width="100px" class="demo-ruleForm" :rules="rules" ref="formData"> <el-form-item label="用户名:" prop="username"> <el-input v-model="formData.username" :disabled="formType === 'edit'" ></el-input> </el-form-item> <el-form-item label="邮箱:" prop="email"> <el-input v-model="formData.email" placeholder="请输入邮箱"></el-input> </el-form-item> <el-form-item label="手机号:" prop="mobile"> <el-input v-model="formData.mobile" placeholder="请输入手机号"></el-input> </el-form-item> <el-form-item label="用户昵称:" prop="nickname"> <el-input v-model.number="formData.nickname"></el-input> </el-form-item> <!-- <el-form-item label="所属部门:"> <el-select v-model="formData.orgId"> <el-option v-for="(option, key) in dicts.IS_DISABLED" :key="key" :label="option" :value="key"></el-option> </el-select> </el-form-item> <el-form-item label="职位:"> <el-input v-model="formData.position"></el-input> </el-form-item> -->点击提交为什么不触发校验
03-27
### 正确设置 Element UI `el-form` 的 `label-width` 属性 在使用 Element UI 的 `el-form` 组件时,`label-width` 是一个非常重要的属性,用于控制表单项标签的宽度。通过合理配置该属性,可以实现更美观、整齐的布局效果。 #### 设置方法 1. **全局设置** 可以直接在 `<el-form>` 标签上定义 `label-width` 属性,其值为字符串形式表示的具体像素宽度(单位默认为 px)。此方式适用于整个表单中的所有项都具有相同的标签宽度需求的情况[^3]。 ```vue <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"> <!-- 表单--> </el-form> ``` 2. **局部覆盖** 如果某些特定的表单项需要不同的标签宽度,则可以在对应的 `<el-form-item>` 上单独指定 `label-width` 属性来覆盖全局设定[^3]。 ```vue <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"> <el-form-item label="用户名" prop="username"> <el-input v-model="ruleForm.username"></el-input> </el-form-item> <el-form-item label="密码" prop="password" label-width="80px"> <el-input type="password" v-model="ruleForm.password"></el-input> </el-form-item> </el-form> ``` 3. **动态调整** 当页面逻辑复杂或者需要响应式设计时,可以通过 Vue 数据绑定的方式动态修改 `label-width` 值。这使得开发者能够依据屏幕尺寸或其他条件灵活改变标签区域大小[^1]。 ```vue <template> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-width="dynamicLabelWidth"> <el-form-item label="邮箱地址" prop="email"> <el-input v-model="ruleForm.email"></el-input> </el-form-item> </el-form> </template> <script> export default { data() { return { dynamicLabelWidth: '120px', // 初始值 ruleForm: { email: '' }, rules: {} }; } }; </script> ``` 4. **注意事项** - 若未显式声明 `label-width`,则默认情况下会自动计算适合的宽度,可能导致不同设备间表现不一致。 - 对于无标签的文字说明型字段,建议保留一定空白占位符作为视觉间隔处理,比如设置 `label=" "` 或者隐藏实际文字内容但仍保持固定宽高比例[^2]。 #### 总结 以上介绍了几种常见的针对 `el-form` 中 `label-width` 参数的操作技巧,包括静态赋值、个别定制以及基于业务场景下的程序化调控手段。这些策略可以帮助前端工程师更好地掌控界面呈现细节,从而提升用户体验满意度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值