el-form中校验(新增、删除)

<template>
	<div>
		<el-card class="box-card">
			<div slot="header">
				<el-button @click="resetForm('formRef')">重置</el-button>
				<el-button type="primary" @click="submitForm('formRef')">提交</el-button>
			</div>
			<el-form :model="form" :rules="rules" ref="formRef" label-width="100px">
				<el-row>
					<el-col :span="8">
						<el-form-item label="活动名称" prop="name">
							<el-input v-model="form.name" placeholder="请输入" style="width:100%;"></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="8">
						<el-form-item label="活动区域" prop="region">
							<el-select v-model="form.region" placeholder="请选择" style="width:100%;">
								<el-option label="区域一" value="shanghai"></el-option>
								<el-option label="区域二" value="beijing"></el-option>
							</el-select>
						</el-form-item>
					</el-col>
					<el-col :span="8">
						<el-form-item label="活动时间" prop="time">
							<el-date-picker v-model="form.time" type="date" :editable="false" value-format="yyyy-MM-dd" placeholder="请选择" style="width:100%;"></el-date-picker>
						</el-form-item>
					</el-col>
				</el-row>
				<el-row v-for="(item,index) in form.list" :key="index">
					<el-col :span="8">
						<el-form-item label="景点" :prop="`list[${index}]`" :rules="[{ required: true, message: `景点不能为空`, trigger: 'blur' }]">
							<el-input v-model="form.list[index]" style="width: 100%" placeholder="请输入">
								<template slot="append">
									<el-button icon="el-icon-plus"  circle  @click="addRowClick" v-if="index==0"></el-button> 
                        	        <el-button icon="el-icon-minus" circle  @click="delRowClick(index)" v-else></el-button> 
								</template>
							</el-input>
						</el-form-item>
					</el-col>
				</el-row>
			</el-form>
		</el-card>
	</div>
</template>
<script>

export default {
	data() {
		return {
			form: {
				name: '',
				region: '',
				time:'',
				list:['']
			},
			rules: {
				name: [
					{ required: true, message: '请输入活动名称', trigger: 'blur' }
				],
				region: [
					{ required: true, message: '请选择活动区域', trigger: 'change' }
				]
			}
		}
	},
	methods: {
		addRowClick(){
        	this.form.list.push('');
      	},
      	delRowClick(index){
        	this.form.list.splice(index,1);
      	},
		submitForm(formName) {
			this.$refs[formName].validate((valid) => {
				if (valid) {
					console.log('form',this.form);
				} 
			});
		},
		resetForm(formName) {
			this.$refs[formName].resetFields();
		}
	},
}
</script>
<style scoped></style>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-form表单验证,如果需要进行数字校验,可以使用rules属性来定义校验规则。根据引用\[1\]的代码示例,可以在rules对象添加一个数字校验规则。例如: ```javascript const rules = { name: \[ { required: true, message: '请输入姓名', trigger: 'blur' }, { type: 'number', message: '请输入数字', trigger: 'blur' } \], desc: \[ { required: true, message: '请输入退回原因', trigger: 'blur' }, { type: 'number', message: '请输入数字', trigger: 'blur' } \] }; ``` 在上述代码,我们为name和desc字段添加了一个type为'number'的校验规则,用于验证输入的值是否为数字。当输入的值不是数字时,会显示"请输入数字"的错误提示信息。 另外,根据引用\[2\]的代码示例,可以在提交表单时调用validateField方法来触发表单项的校验。例如: ```javascript const ruleFormValidate = async (ref) => { await ref.validateField('tagList'); }; ``` 在上述代码,我们调用validateField方法来校验名为tagList的表单项。 综上所述,你可以通过在rules添加type为'number'的校验规则来实现el-form表单的数字校验。同时,在提交表单时,可以调用validateField方法来触发表单项的校验。 #### 引用[.reference_title] - *1* [el-form表单新增表单项动态校验el-form校验动态表单v-if不生效;](https://blog.csdn.net/i_am_a_div/article/details/125544267)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [vue3 el-form表单验证 自定义校验](https://blog.csdn.net/a965412234/article/details/119212016)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值