element——表单的复杂数组渲染

element——表单的数组渲染及校验(vue)

常见表单渲染及校验
<template>
	<div class='test'>
		<el-form ref="form" :model="form" :rules="rules">
		  <el-form-item label="活动名称" prop='name'>
		    <el-input v-model="form.name"></el-input>
		  </el-form-item>
		<el-form>
	<div>
</template>
<script>
	data () {
		return {
			form: {
				name: ''
			},
			rules: {
				name: [{ required: true, message: '不能为空', trigger: 'blur' }]
			}
		}
	}
</script>
复杂数组表单渲染及校验(也可以表单中嵌套另一个表单,使用v-for)
<template>
	<div class='test'>
		<el-form ref="form" :model="form" :rules="rules">
		    <el-form-item label="序号" prop="id" :rules="{ required: true, message: '请输入', trigger: 'blur' }">
	           	<el-input placeholder="请输入" v-model="form.id"></el-input>
	        </el-form-item>
		  	<div v-for="(item, index) in form.list" :key="index">
                <el-form-item label="名称" :prop="`list[${index}].name`" :rules="{ required: true, message: '请输入', trigger: 'blur' }">
                	<el-input placeholder="请输入" v-model="item.name"></el-input>
                </el-form-item>
                <el-form-item label="年龄" :prop="`list[${index}].age`" :rules="{ required: true, message: '请输入', trigger: 'blur' }">
                  	<el-input placeholder="请输入" v-model="item.age"></el-input>
                </el-form-item>
                <el-form-item label="手机号" :prop="`list[${index}].phone`" :rules="{ required: true, message: '请输入', trigger: 'blur' }">
                  	<el-input placeholder="请输入" v-model="item.phone"  maxlength="11"></el-input>
                </el-form-item>
            </div>
		<el-form>
	<div>
</template>
<script>
	data () {
		return {
			form: {
				id: '',
				list: [
					{
						name: 'hh',
						age: 10,
						phone: '12312323'
					},
					{
						name: 'xx',
						age: 20,
						phone: 'sdffafasdf'
					},
					{
						name: 'dd',
						age: 30,
						phone: 'sdfsdfsdf'
					}
				]
			}
		}
	}
</script>
Element UI 中,如果你想要在表单中嵌套数组,并且能够动态增加或删除数组项,你可以使用 `el-form`、`el-form-item` 和 `el-input` 等组件来实现。 以下是一个示例代码片段,展示了如何在 Element UI 的表单中嵌套数组,并实现动态增减数组项的功能: ```html <template> <el-form :model="formData" ref="form" label-width="100px"> <el-form-item v-for="(item, index) in formData.items" :key="index"> <el-input v-model="item.value" :placeholder="item.label"></el-input> <el-button @click="removeItem(index)" type="danger" icon="el-icon-delete"></el-button> </el-form-item> <el-button @click="addItem" type="primary">添加项</el-button> </el-form> </template> <script> export default { data() { return { formData: { items: [ { label: 'Label 1', value: '' }, { label: 'Label 2', value: '' }, ], }, }; }, methods: { addItem() { this.formData.items.push({ label: '', value: '' }); }, removeItem(index) { this.formData.items.splice(index, 1); }, }, }; </script> ``` 在上面的代码中,我们使用 `v-for` 指令来遍历 `formData.items` 数组,该数组包含了表单中的嵌套项。对于每个数组项,我们使用 `el-input` 组件来显示输入框,并使用 `v-model` 指令实现数据绑定。 我们还使用了一个删除按钮,当点击按钮时,调用 `removeItem` 方法来删除对应的数组项。 最后,我们添加了一个“添加项”按钮,点击该按钮时,调用 `addItem` 方法来动态添加新的数组项。 通过这种方式,你可以在 Element UI 的表单中嵌套数组,并实现动态增减数组项的功能。你可以根据实际需求,使用其他 Element UI 组件来代替 `el-input`,以实现不同的表单元素类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值