表单if-else的优化方式

**

## 第一种方式优化方案(单一校验)

**
	export default{
		data(){
			return{
				formData:{
					contacts:'',
					telPhone:'',
					faxEmail:'',
					agentNo:'',
					}
			}
		},
		methods:{
			validateFn(value, msg) {
			            if (!value) {
			                alert(msg)
			                return false
			            } else {
			                return true
			            }
			     },
			saveForm() {
			const validate = this.formData
			const validateArray = [
			    this.validateFn(validate.contacts, '请输入姓名!'),
			    this.validateFn(validate.telPhone, '请输入手机号码!'),
			    this.validateFn(validate.faxEmail, '请输入电子邮箱!'),
			    this.validateFn(validate.agentNo, '请输入企业邮箱!'),
			            ]
			    if (!validateArray.includes(false)) {
						this.SubmitFrom()
			       }
			    },
			SubmitFrom(){
			uni.navigateTo({
				url:'../arrayifElse/arrayIfElse'
			})
			},

		}
	}
**

## 第二种优化方案(可正则校验)

**
	export default{
		data(){
			return{
				formData:{
					contacts:'',
					telPhone:'',
					faxEmail:'',
					},
				rule:[
					{label:'联系人姓名',code:'contacts'},
					{label:'联系人手机号码',code:'telPhone',type:'phone'},
					{label:'联系人邮箱',code:'faxEmail',type:'email'},
					]
			}
		},
		methods:{
			SubmitFrom(){
			let bool = true;
			for(let o of this.rule){
				if(this.formData[o.code]){
					let real ;
					if(o.code == 'telPhone' || o.code == 'faxEmail'){ //正则校验判断
						let obj = {}
						obj[o.type] = true;
						real = this.specialReal(this.formData[o.code],obj); //正则方法
					}
					if(real){
						if(real.bool) continue;
						uni.showToast({
							icon:'none',
							title:real.text
						})
						bool = false
						break;
					}
				}else{
					bool = false
					uni.showToast({
						title: `${o.label}不能为空,请前往填写`,
						icon: 'none',
					});
					break;	
				}
			}
			if(bool){
				console.log('验证通过')
			}
			},

		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在UniApp中实现uni-forms-item表单界面以及表单验证,你可以按照以下步骤进行操作: 1. 首先,在页面中引入uni-forms组件。在`template`标签中添加以下代码: ``` <template> <view> <uni-forms> <uni-forms-item label="姓名"> <uni-input v-model="name"></uni-input> </uni-forms-item> <uni-forms-item label="邮箱"> <uni-input v-model="email"></uni-input> </uni-forms-item> <uni-forms-item label="密码"> <uni-input type="password" v-model="password"></uni-input> </uni-forms-item> </uni-forms> <view @tap="submitForm">提交</view> </view> </template> ``` 2. 接下来,你需要在`data`中定义表单数据的初始值和表单验证规则。在`script`标签中添加以下代码: ``` <script> export default { data() { return { name: '', email: '', password: '', rules: { name: [ { required: true, message: '请输入姓名' } ], email: [ { required: true, message: '请输入邮箱' }, { type: 'email', message: '请输入正确的邮箱格式' } ], password: [ { required: true, message: '请输入密码' }, { min: 6, max: 20, message: '密码长度为6-20位' } ] } } }, methods: { submitForm() { this.$refs.uniForms.validate((valid) => { if (valid) { // 表单验证通过,提交表单逻辑 console.log('表单验证通过') } else { // 表单验证不通过,提示错误信息 console.log('表单验证不通过') } }) } } } </script> ``` 3. 最后,你需要在`methods`中编写`submitForm`方法来提交表单。在该方法中,使用`this.$refs.uniForms.validate`来进行表单验证。如果验证通过,你可以在`valid`为`true`时执行提交表单的逻辑;如果验证不通过,你可以在`valid`为`false`时提示错误信息。 以上就是在UniApp中实现uni-forms-item表单界面以及表单验证的基本步骤。你可以根据具体需求进行进一步的样式和交互优化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值