La fonction validate de la validation de formulaire du composant d'extension uniapp uni-forms ne répond qu'une seule fois

La fonction validate de la validation de formulaire du composant d'extension uniapp uni-forms ne répond qu'une seule fois

code du problème

Copié directement à partir de l'exemple officiel. pour démonstration

<template>
	<view>
		<uni-forms ref="form" :modelValue="formData" :rules="rules">
			<uni-forms-item label="兴趣爱好" required name="hobby">
				<uni-data-checkbox v-model="formData.hobby" multiple :localdata="hobbys" />
			</uni-forms-item>
		</uni-forms>
		<button class="button" @click="submit">校验表单</button>
	</view>
</template>
<script>
export default {
      
      
	data() {
      
      
		return {
      
      
			formData:{
      
      },
			rules: {
      
      
				hobby: {
      
      
					rules: [{
      
      
						validateFunction:function(rule,value,data,callback){
      
      
							if (value.length < 2) {
      
      
								callback('请至少勾选两个兴趣爱好')
							}
							return true
						}
					}]
				}
			}
		}
	},
	onReady() {
      
      
		this.$refs.form.setRules(this.rules)// 需要在onReady中设置规则
	},
	methods: {
      
      
		submit(form) {
      
      
			this.$refs.form.validate().then(console.log).catch(console.error)
		}
	}
}
</script>

description officielle

insérer la description de l'image ici
Je l'ai dit mais je n'ai pas semblé le répéter. . .
Le responsable a déclaré que dans onReadyles règles de vérification contraignantes

onReady() {
    
    
			this.$refs.form.setRules(this.rules); // 需要在onReady中设置规则
		},

Mais mon code actuel a été uni-formsmodifié en copiant l'intégralité d'une autre page. :rules="rules"Il n'a donc pas été supprimé. Cela ne fonctionne donc validateFunctionqu'au premier appel this.$refs.form.validate().
REMARQUE : Lors de l'utilisationvalidateFunction :

  1. Dans onReadydes règles de validation contraignantes.
  2. Supprimez uni-formsce qui précède :rules="rules". (le cas échéant)

Doute :
onReady et :rules="rules"ne peut pas fonctionner normalement, pourquoi ne pas lancer une exception ?
Pourquoi peut-il être déclenché à nouveau pour confondre les gens ? . . Bien. .

Les références

Nom du composant : uniformes

Acho que você gosta

Origin blog.csdn.net/jx520/article/details/132206159
Recomendado
Clasificación