怎么获取 el-form-item 的label
时间: 2023-12-14 11:54:36 浏览: 93
可以通过以下两种方式获取 `el-form-item` 的 `label`:
1. 使用 `ref` 属性
在 `el-form-item` 上添加 `ref` 属性,并在需要获取 `label` 的地方通过 `$refs` 获取:
```vue
<template>
<el-form-item label="用户名" ref="usernameFormItem">
<el-input v-model="username"></el-input>
</el-form-item>
</template>
<script>
export default {
data() {
return {
username: ''
}
},
mounted() {
console.log(this.$refs.usernameFormItem.label)
}
}
</script>
```
2. 使用 `$parent` 属性
在 `el-form-item` 内部使用 `$parent` 属性获取 `el-form` 组件实例,并通过实例的 `label-position` 属性和 `label-width` 属性计算出 `label` 的值:
```vue
<template>
<el-form>
<el-form-item label="用户名">
<el-input v-model="username"></el-input>
</el-form-item>
<el-form-item label="密码">
<el-input type="password" v-model="password"></el-input>
</el-form-item>
<el-button @click="getLabels">获取 label</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
username: '',
password: ''
}
},
methods: {
getLabels() {
const formItems = this.$el.querySelectorAll('.el-form-item')
const labels = Array.from(formItems).map(item => {
const form = item.$parent
const labelPosition = form.labelPosition || 'right'
const labelWidth = form.labelWidth || 'auto'
const label = item.getAttribute('label')
return labelPosition === 'top' ? label : label + ':'.repeat(labelWidth / 7)
})
console.log(labels)
}
}
}
</script>
```
阅读全文