vue,怎么让el-form-item不独占一行,一行可以显示两个el-form-item?
时间: 2023-12-16 10:05:57 浏览: 126
可以使用`el-row`和`el-col`来实现让`el-form-item`一行显示两个的效果。具体实现方法如下:
```html
<el-form :model="form" :rules="rules">
<el-row>
<el-col :span="12">
<el-form-item label="标题1" prop="prop1">
<el-input v-model="form.prop1"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="标题2" prop="prop2">
<el-input v-model="form.prop2"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
```
其中,`el-row`表示一行,`el-col`表示一列,`:span="12"`表示该列占据12个网格,即占据一半的宽度。这样就可以让两个`el-form-item`在同一行显示了。
相关问题
设计一个vue3的el-form-item两列四行的布局
可以使用`ElRow`和`ElCol`组件来实现两列四行的布局,每行包含两个`ElFormItem`组件。
示例代码如下:
```vue
<template>
<el-form>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年龄" prop="age">
<el-input v-model="form.age"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="性别" prop="gender">
<el-radio-group v-model="form.gender">
<el-radio label="male">男</el-radio>
<el-radio label="female">女</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="职业" prop="job">
<el-select v-model="form.job" placeholder="请选择">
<el-option label="工程师" value="engineer"></el-option>
<el-option label="教师" value="teacher"></el-option>
<el-option label="医生" value="doctor"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="手机号码" prop="phone">
<el-input v-model="form.phone"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
age: '',
gender: '',
job: '',
phone: '',
email: ''
}
};
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
console.log('submit form');
} else {
console.log('validation failed');
return false;
}
});
}
}
};
</script>
```
效果如下:
![el-form-item两列四行的布局](https://img-blog.csdnimg.cn/2021110319480992.png)
vue 控制 el-form-item显示
要控制 `el-form-item` 的显示,你可以使用 Vue 中的条件渲染指令 `v-if` 或者 `v-show`。
使用 `v-if` 来根据条件动态渲染 `el-form-item`,例如:
```html
<el-form-item v-if="showFormItem">
<!-- form item 的内容 -->
</el-form-item>
```
在 Vue 实例中,你可以定义一个 `showFormItem` 的 data 属性,并根据需要来改变它的值,从而决定是否显示 `el-form-item`。例如:
```javascript
data() {
return {
showFormItem: true
};
}
```
在需要改变显示状态的地方,你可以通过修改 `showFormItem` 的值来控制 `el-form-item` 的显示或隐藏。例如:
```javascript
this.showFormItem = false; // 隐藏 el-form-item
```
另一种方式是使用 `v-show` 指令,它与 `v-if` 不同的地方在于,使用 `v-show` 时,被隐藏的元素仍然会在 DOM 中保留,并且只是通过 CSS 的方式将其隐藏起来。使用方法如下:
```html
<el-form-item v-show="showFormItem">
<!-- form item 的内容 -->
</el-form-item>
```
同样,你可以通过修改 `showFormItem` 的值来控制 `el-form-item` 的显示与隐藏。例如:
```javascript
this.showFormItem = false; // 隐藏 el-form-item
```
无论你选择使用 `v-if` 还是 `v-show`,都可以根据条件来动态控制 `el-form-item` 的显示。根据具体的需求,选择适合的指令即可。