Maison Applet WeChat Développement de mini-programmes Exemple d'implémentation de la fonction de vérification de formulaire dans l'applet WeChat

Exemple d'implémentation de la fonction de vérification de formulaire dans l'applet WeChat

Sep 12, 2017 am 09:25 AM
功能 实现 小程序

Quelle est l'entreprise publique la plus difficile à mettre en œuvre dans les mini-programmes WeChat ? Il devrait s'agir d'une vérification de formulaire. Cet article présente principalement comment l'applet WeChat implémente la fonction de vérification de formulaire. Les amis intéressés peuvent se référer au

Mini Program SDK

Difficulté à vérifier le formulaire

Si vous voulez demander, quelle est l'entreprise publique la plus difficile à mettre en œuvre dans les mini-programmes WeChat ? Il devrait s'agir d'une vérification de formulaire, rien d'autre. Les raisons sont les suivantes :

Le nombre de composants de formulaire atteint 11, se classant au premier rang parmi tous les types de composants. Heureusement, bien entendu, tout n’est pas nécessairement vérifié.

Ces composants peuvent être utilisés de différentes manières, notamment par glissement, saisie (multiligne), clic et clic + glissement.
Même s'il s'agit du même composant, il y aura des règles de vérification différentes en raison de différents scénarios commerciaux.
Ce qui est encore plus gênant, c'est que ces composants sont souvent liés ou vérifiés.

Cependant, en tant que page statique non simple, il existe un petit programme avec beaucoup d'interactions utilisateur, et la vérification du formulaire est une fonction très courante : connexion, inscription, nouvel ajout, édition…

En bref : Diversité des composants de formulaire

Essayez la composantisation


Si vous faites attention à la tendance du développement front-end de ces dernières années, vous penserez certainement à la « composantisation » pour réaliser :

Tout Les vues, les styles et la logique de validation de chaque composant de formulaire sont encapsulés dans des composants métier distincts, puis appelés directement.

Mais les choses ne semblent pas si simples.

Si vous envisagez d'abstraire n composants natifs, d'ajouter n règles de vérification, puis de multiplier par n (arrangement complet) la relation entre les composants, la complexité atteindra au moins n³.

Et l'échec ou le succès de la vérification de chaque composant doit être notifié au composant parent afin que le message d'erreur puisse être affiché ou que l'étape suivante puisse être effectuée.

Non seulement cela ne résout pas le problème, mais cela rend en fait ces composants de formulaire communs trop complexes et couplés de manière confuse.

Essayez la non-componentisation


Puisque l'idée originale ne fonctionne pas, revenons au point de départ et voyons ce que notre noyau doit être abstrait .

Ce n'est rien de plus que deux choses : le style d'élément de la couche de vue et les règles de validation de la couche logique.

Comme mentionné ci-dessus, l'encapsulation de composants de formulaire natifs augmentera considérablement la complexité. Il suffit de l'abandonner, et la complexité peut être réduite à n² en un instant.

Mais en même temps, nous devons maintenir un style unifié, ce que nous appelons souvent un style cohérent.

Par exemple, quelle doit être la hauteur de la zone de saisie, comment afficher les invites d'erreur, la taille et la couleur de la police... etc.

C'est facile à faire. Nous écrivons la classe de style dans un fichier de style public form.wxss, puis l'importons si nécessaire, ou même l'importons globalement.


Lorsque nous l'utilisons, il suffit d'ajouter le style correspondant à l'élément correspondant. Par exemple :

// form.wxss
.form {
 display: block;
 font-size: 28rpx;
 position: relative;
}
.form-line {
 background-color: #fff;
 border-bottom: 1px solid #e5e5e5;
 font-size: 34rpx;
 height: 96rpx;
 line-height: 96rpx;
 display: flex;
 padding: 0 31rpx;
}
.form-title {
 box-sizing: border-box;
 background-color: #efefef;
 color: #838383;
 font-size: 28rpx;
 padding: 31rpx;
 min-height: 90rpx;
}
...
Copier après la connexion


Il ne nous reste alors plus que les deux problèmes entre les règles de vérification et les associations de composants.

// xxx.wxml
<form class="form">
 <view class="form-title">请输入手机号</view>
 <view class="form-line">
  <label class="label">手机</label>
  <view class="form-control">
   <input class="f-1 va-m input" />
  </view>
 </view>
 ...
</form>
Copier après la connexion
Les règles de validation doivent idéalement être extensibles et configurables.

Extensible. À mesure que votre entreprise se développe, vous pouvez ajouter de nouvelles règles de vérification sans modifier les règles existantes.

Configurable. Différentes règles de validation simples ou multiples peuvent être configurées individuellement pour chaque composant de formulaire.

Comment le rendre définissable ? Utilisez simplement un formulaire unifié. Par exemple :


Comment le rendre configurable ? La configuration prend en charge une forme de type tableau, puis utilise une fonction unifiée pour lire ces règles de vérification dans l'ordre et les vérifier une par une.

/*
统一的格式:
[规则名]: {
 rule: [校验方式]
 msg: [错误信息]
}
*/
const validators = {
 // 简单的校验用正则
 required: {
  rule: /.+/,
  msg: &#39;必填项不能为空&#39;
 },
 // 复杂的校验用函数
 same: {
  rule (val=&#39;&#39;, sVal=&#39;&#39;) {
   return val===this.data[sVal]
  },
  msg: &#39;密码不一致&#39;
 }
 ...
}
Copier après la connexion
Les règles configurées doivent être sur le composant de formulaire natif, et la valeur du composant ne peut être obtenue que via l'objet événement.

Si vous liez directement l'événement pour vérification, cela empêchera la page parent d'obtenir la valeur, il est donc préférable de lier l'événement à la page parent pour transmettre la valeur, et de transmettre l'objet événement et environnement d'exécution pour le traitement :


est également très simple à appeler selon le format fixe, configurez les règles de vérification, puis. appeler la fonction de vérification.
/*
校验函数部分代码
e 事件对象
context 页面对象函数执行的上下文环境
*/
let validate = (e, context) => {
 // 从事件对象中获取组件的值
 let value = (e.detail.value || &#39;&#39;).trim()
 // 从事件中获取校验规则名称
 let validator = e.currentTarget.dataset.validator ? e.currentTarget.dataset.validator .split(&#39;,&#39;) : []
 // 遍历规则进行校验
 for (let i = 0; i < validator.length; i++) {
  let ruleName = validator[i].split(&#39;=&#39;)[0]
  let ruleValue = validator[i].split(&#39;=&#39;)[1]
  let rule = validators[ruleName].rule || /.*/
  if (&#39;function&#39; === typeof rule) {
   rule.call(context, value, ruleValue) ? &#39;&#39; : validators[ruleName].msg
  } else {
   rule.test(value) ? &#39;&#39; : validators[ruleName].msg
  }
 }
 ...
}
Copier après la connexion



Résumé
// 部分代码示例
// page.wxml
<form>
 <!-- 一个表单组件 -->
 <view class="form-line">
  <label class="label">授权手机</label>
  <view class="form-control">
   <!-- 校验规则:必须填写,且为电话号码 -->
   <input maxlength="11" class="f-1 va-m input" bindblur="validate" type="number" data-name="phone" data-validator="required,phone" confirm-type="next" value="{{phone}}" />
   <!-- 错误图标 -->
   <icon wx:if="{{form.phone!==undefined}}" type="{{form.phone?&#39;warn&#39;:&#39;success&#39;}}" size="16" />
  </view>
 </view>
 ...
</form>
// page.js
valid(e) {
 this.setData({
  [e.currentTarget.dataset.name]: e.detail.value
 })
 validate(e, this)
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La différence entre vivox100s et x100 : comparaison des performances et analyse des fonctions La différence entre vivox100s et x100 : comparaison des performances et analyse des fonctions Mar 23, 2024 pm 10:27 PM

Les téléphones mobiles vivox100 et x100 sont des modèles représentatifs de la gamme de produits de téléphonie mobile de Vivo. Ils représentent respectivement les niveaux de technologie haut de gamme de Vivo à différentes périodes. Par conséquent, ces deux téléphones mobiles présentent certaines différences en termes de conception, de performances et de fonctions. Cet article procédera à une comparaison détaillée entre ces deux téléphones mobiles en termes de comparaison des performances et d'analyse des fonctions pour aider les consommateurs à mieux choisir le téléphone mobile qui leur convient. Tout d’abord, examinons la comparaison des performances entre les vivox100 et x100. vivox100s est équipé des dernières

Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Mar 24, 2024 am 11:27 AM

Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Avec l’essor des réseaux sociaux, WeChat est devenu l’un des outils de communication indispensables dans la vie quotidienne des gens. Cependant, de nombreuses personnes peuvent rencontrer un problème : se connecter à plusieurs comptes WeChat en même temps sur le même téléphone mobile. Pour les utilisateurs de téléphones mobiles Huawei, il n'est pas difficile d'obtenir une double connexion WeChat. Cet article explique comment obtenir une double connexion WeChat sur les téléphones mobiles Huawei. Tout d'abord, le système EMUI fourni avec les téléphones mobiles Huawei offre une fonction très pratique : l'ouverture d'une double application. Grâce à la fonction de double ouverture de l'application, les utilisateurs peuvent simultanément

Qu'est-ce que l'auto-média exactement ? Quelles sont ses principales caractéristiques et fonctions ? Qu'est-ce que l'auto-média exactement ? Quelles sont ses principales caractéristiques et fonctions ? Mar 21, 2024 pm 08:21 PM

Avec le développement rapide d'Internet, le concept d'auto-média est devenu profondément ancré dans le cœur des gens. Alors, qu’est-ce que l’auto-média exactement ? Quelles sont ses principales caractéristiques et fonctions ? Ensuite, nous explorerons ces questions une par une. 1. Qu’est-ce que l’auto-média exactement ? Nous-médias, comme son nom l’indique, signifie que vous êtes les médias. Il fait référence à un support d'informations grâce auquel des individus ou des équipes peuvent créer, éditer, publier et diffuser de manière indépendante du contenu via la plateforme Internet. Différent des médias traditionnels, tels que les journaux, la télévision, la radio, etc., les automédias sont plus interactifs et personnalisés, permettant à chacun de devenir producteur et diffuseur d'informations. 2. Quelles sont les principales caractéristiques et fonctions du self-média ? 1. Seuil bas : L’essor des médias autonomes a abaissé le seuil d’entrée dans l’industrie des médias. Des équipements encombrants et des équipes professionnelles ne sont plus nécessaires.

Comment implémenter la fonction de clonage WeChat sur les téléphones mobiles Huawei Comment implémenter la fonction de clonage WeChat sur les téléphones mobiles Huawei Mar 24, 2024 pm 06:03 PM

Comment mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei Avec la popularité des logiciels sociaux et l'importance croissante accordée à la confidentialité et à la sécurité, la fonction de clonage WeChat est progressivement devenue le centre d'attention. La fonction de clonage WeChat peut aider les utilisateurs à se connecter simultanément à plusieurs comptes WeChat sur le même téléphone mobile, ce qui facilite la gestion et l'utilisation. Il n'est pas difficile de mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei. Il vous suffit de suivre les étapes suivantes. Étape 1 : Assurez-vous que la version du système de téléphonie mobile et la version de WeChat répondent aux exigences. Tout d'abord, assurez-vous que la version de votre système de téléphonie mobile Huawei a été mise à jour vers la dernière version, ainsi que l'application WeChat.

Guide de programmation PHP : méthodes pour implémenter la séquence de Fibonacci Guide de programmation PHP : méthodes pour implémenter la séquence de Fibonacci Mar 20, 2024 pm 04:54 PM

Le langage de programmation PHP est un outil puissant pour le développement Web, capable de prendre en charge une variété de logiques et d'algorithmes de programmation différents. Parmi eux, l’implémentation de la séquence de Fibonacci est un problème de programmation courant et classique. Dans cet article, nous présenterons comment utiliser le langage de programmation PHP pour implémenter la séquence de Fibonacci et joindrons des exemples de code spécifiques. La suite de Fibonacci est une suite mathématique définie comme suit : le premier et le deuxième élément de la suite valent 1, et à partir du troisième élément, la valeur de chaque élément est égale à la somme des deux éléments précédents. Les premiers éléments de la séquence

Astuces PHP : implémentez rapidement la fonction de retour à la page précédente Astuces PHP : implémentez rapidement la fonction de retour à la page précédente Mar 09, 2024 am 08:21 AM

Astuces PHP : Implémentez rapidement la fonction de retour à la page précédente. Dans le développement web, nous rencontrons souvent le besoin d'implémenter la fonction de retour à la page précédente. De telles opérations peuvent améliorer l’expérience utilisateur et faciliter la navigation des utilisateurs entre les pages Web. En PHP, nous pouvons réaliser cette fonction grâce à un code simple. Cet article présentera comment implémenter rapidement la fonction de retour à la page précédente et fournira des exemples de code PHP spécifiques. En PHP, on peut utiliser $_SERVER['HTTP_REFERER'] pour récupérer l'URL de la page précédente

Quelles sont les fonctions du logiciel de gestion de compte Xiaohongshu ? Comment gérer un compte Xiaohongshu ? Quelles sont les fonctions du logiciel de gestion de compte Xiaohongshu ? Comment gérer un compte Xiaohongshu ? Mar 21, 2024 pm 04:16 PM

À mesure que Xiaohongshu devient populaire parmi les jeunes, de plus en plus de personnes commencent à utiliser cette plateforme pour partager divers aspects de leurs expériences et de leurs idées de vie. Comment gérer efficacement plusieurs comptes Xiaohongshu est devenu une question clé. Dans cet article, nous aborderons certaines des fonctionnalités du logiciel de gestion de compte Xiaohongshu et explorerons comment mieux gérer votre compte Xiaohongshu. À mesure que les médias sociaux se développent, de nombreuses personnes doivent gérer plusieurs comptes sociaux. C'est également un défi pour les utilisateurs de Xiaohongshu. Certains logiciels de gestion de compte Xiaohongshu peuvent aider les utilisateurs à gérer plusieurs comptes plus facilement, notamment la publication automatique de contenu, la publication programmée, l'analyse des données et d'autres fonctions. Grâce à ces outils, les utilisateurs peuvent gérer leurs comptes plus efficacement et accroître l'exposition et l'attention de leur compte. De plus, le logiciel de gestion de compte Xiaohongshu a

Découvrez comment Golang offre des possibilités de développement de jeux Découvrez comment Golang offre des possibilités de développement de jeux Mar 16, 2024 pm 12:57 PM

Dans le domaine actuel du développement logiciel, Golang (langage Go), en tant que langage de programmation efficace, concis et hautement simultané, est de plus en plus favorisé par les développeurs. Sa riche bibliothèque de normes et ses fonctionnalités de concurrence efficaces en font un choix de premier plan dans le domaine du développement de jeux. Cet article explorera comment utiliser Golang pour le développement de jeux et démontrera ses puissantes possibilités à travers des exemples de code spécifiques. 1. Avantages de Golang dans le développement de jeux. En tant que langage typé statiquement, Golang est utilisé dans la construction de systèmes de jeux à grande échelle.

See all articles