Encapsular manualmente un método público de verificación de formularios uni-app

Prefacio

Use uni-app para desarrollar pequeños programas, ya que no hay un complemento, solo puede escribir la verificación manualmente

Ideas

La primera consideración es escribir un comando personalizado, este comando contiene dos funciones, enlace de datos bidireccional y verificación;
pero en la operación real, se encuentra que uni-app no ​​permite el uso de comandos personalizados;
por lo tanto, use la verificación manual para comparar bajo Método. Este método se refiere a la especificación de verificación del elemento. Es simple de implementar en la actualidad. Este método se mejorará en el futuro. El
siguiente es el proceso de implementación para
encapsular un js público cuando se necesita verificación, pasar el valor de verificación y las reglas-la verificación falla (Prompt + return false) -verification es exitosa (return true)

Código

Js de verificación pública

Crea un archivo público de rules.js

function rules(info,rule) {
    
    
	for(var i in rule){
    
    
		// 判断rule和info的值是否是一一对于
		if(info[i] === undefined){
    
    
			console.log(`传入的数据没有${
      
      i}`)
			// 不对应则跳过,没有验证此跳过方法
			// continue 
			return false
		}
		for(let j=0;j<rule[i].length;j++){
    
    
			// 判断是否是必填项
			if(rule[i][j].required){
    
    
				if(info[i] == ''){
    
    
					uni.showToast({
    
    
						title: rule[i][j].message || '校验不通过',
						icon: 'none'
					})
					return false
				}
			}
			//判断最小输入值min
			if(rule[i][j].min){
    
    
				if(info[i].length < rule[i][j].min){
    
    
					uni.showToast({
    
    
						title: rule[i][j].message || '校验不通过',
						icon: 'none'
					})
					return false
				}
			}
			//判断最大输入值max
			if(rule[i][j].max){
    
    
				if(info[i].length > rule[i][j].max){
    
    
					uni.showToast({
    
    
						title: rule[i][j].message || '校验不通过',
						icon: 'none'
					})
					return false
				}
			}
			// 正则判断pattern
			if(rule[i][j].pattern){
    
    
				if(!rule[i][j].pattern.test(info[i])){
    
    
					uni.showToast({
    
    
						title: rule[i][j].message || '校验不通过',
						icon: 'none'
					})
					return false
				}
			}
		}
	}
	return true
}
module.exports = rules

Debido a que el proyecto del programa pequeño no es grande y no requiere tantas verificaciones, actualmente solo se escriben cuatro métodos para el valor máximo, el valor mínimo, los elementos requeridos y la regularidad. Puede agregar reglas de verificación según sus necesidades.

Montar métodos públicos

Monte el método público para vue
en main.js

import rules from '@/utils/rules.js'
// 校验规则
Vue.prototype.$rules = rules

Verificar el uso del código

data() {
    
    
	return {
    
    
		cpledgeOrderDetail: {
    
    
			handleType: '',
			carNo: '',
			custName: '',
			custPhone: '',
			provinceCode: '',
			cityCode: '',
			city:'',
			province:'',
			vehicleAdministrative: '',
			remark: '',
			finishTime: '',
			juridicalPerson:'',
			businessNumber:''
		},
		rules:{
    
    
			city:[
				{
    
     required: true, message: '办理城市不能为空' }
			],
			finishTime:[
				{
    
     required: true, message: '预约办理时间不能为空' }
			],
			businessNumber:[
				{
    
     required: true, message: '申请办理笔数不能为空' },
				{
    
     max: 9, message: '申请办理笔数不能超过999999999' }
			],
			custName:[
				{
    
     required: true, message: '车主/联系人名字不能为空' },
				{
    
    
					pattern: /^([\u4e00-\u9fa5]){2,6}$/,
					message: '车主/联系人姓名的限制为2-6中文!'
				}
			],
			custPhone:[
				{
    
     required: true, message: '车主/联系人电话不能为空' },
				{
    
    
					pattern: /^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$/,
					message: '请填写有效手机号'
				}
			]
		}
	}
},
methods: {
    
    
	formOk(){
    
    
		if(this.$rules(this.cpledgeOrderDetail,this.rules)){
    
    
			uni.showLoading({
    
    
				title:"提交中..."
			})
			//请求,此请求是经过封装的,不要疑为什么是res[1],把请求换成自己的
			this.$serve.post('orderEdit',this.cpledgeOrderDetail).then(res=>{
    
    
				if(res[1]){
    
    
					uni.hideLoading()
					uni.navigateBack({
    
    
						delta: 1
					})
				}
			})
		}
	}
}

parámetro definición Defaults
requerido ¿Es necesario? -
max El valor máximo ingresado, generalmente mezclado con min -
min El valor mínimo de la entrada, generalmente mezclado con max -
patrón Regla de verificación regular -
mensaje Palabra de aviso para error de verificación Verificación fallida

Supongo que te gusta

Origin blog.csdn.net/weixin_43236062/article/details/113866747
Recomendado
Clasificación