Avant de discuter en profondeur de la validation de formulaire, réfléchissons d'abord à la véritable signification de la validation de formulaire. À la base, la validation de formulaire est un système qui détecte les données de contrôle invalides et signale ces erreurs pour les utilisateurs finaux. En d'autres termes, la validation du formulaire effectue une série de vérifications sur le formulaire avant qu'il ne soit soumis au serveur et informe l'utilisateur de corriger les erreurs.
Mais qu’est-ce que la validation de formulaire réellement ?
est une optimisation.
La raison pour laquelle la validation du formulaire est une optimisation est que le mécanisme de validation du formulaire à lui seul ne suffit pas à garantir que les données du formulaire soumises au serveur sont correctes et valides. D'un autre côté, la validation des formulaires est conçue pour permettre aux applications Web de générer des erreurs plus rapidement. En d’autres termes, il est préférable d’utiliser le mécanisme de gestion intégré au navigateur pour informer l’utilisateur qu’une page Web contient des valeurs de contrôle de formulaire non valides. Dans le passé, les données circulaient sur le réseau uniquement pour que le serveur avertisse l'utilisateur qu'il avait saisi des données incorrectes. Si le navigateur est entièrement capable de détecter les erreurs avant qu'elles ne quittent le client, nous devrions en profiter.
Cependant, la vérification du formulaire du navigateur ne suffit pas à gérer toutes les erreurs.
Cela dit, HTML5 introduit huit méthodes pour valider l'exactitude des données des contrôles de formulaire. Examinons-les tour à tour, mais nous présenterons d'abord l'objet ValidityState utilisé pour renvoyer l'état de validation.
Dans les navigateurs prenant en charge la validation de formulaire HTML5, l'objet ValidityState est accessible via le contrôle de formulaire :
var valCheck = document.myForm.myInput.validity;
Cette ligne de code obtient l'objet ValidityState de l'élément de formulaire nommé myInput. L'objet contient des références aux huit états de vérification, ainsi que le résultat final de la vérification.
La méthode d'appel est la suivante :
valCheck.valid
Après l'exécution, nous obtiendrons une valeur booléenne, qui indique si le contrôle de formulaire a passé toutes les contraintes de validation. L'attribut valide peut être considéré comme le résultat final de la vérification : si les huit contraintes sont passées, l'attribut valide est vrai. Sinon, tant qu'une contrainte échoue, l'indicateur valide est faux.
Comme mentionné précédemment, il existe huit contraintes de validation possibles pour tout élément de formulaire. Chaque condition a un nom d'attribut correspondant dans l'objet ValidityState, accessible de la manière appropriée. Analysons-les un par un pour voir comment ils sont associés aux contrôles du formulaire et comment les vérifier en fonction de l'objet ValidityState :
1 valueMissing
Objectif : Garantir la valeur dans le. contrôle de formulaire Rempli.
Utilisation : définissez l'attribut obligatoire sur true dans le contrôle de formulaire.
Exemple :
<input type="text" name="myText" required>
Description détaillée : Si le contrôle de formulaire définit l'attribut requis, le contrôle restera dans un état invalide jusqu'à ce que l'utilisateur remplisse la valeur ou remplisse la valeur via appel codé. Par exemple, une zone de saisie de texte vide échoue à la vérification requise à moins que du texte n'y soit saisi. Lorsque la valeur d'entrée est vide, valueMissing renvoie true.
2. typeMismatch
Objectif : S'assurer que la valeur du contrôle correspond au type attendu (tel que numéro, e-mail, URL, etc.).
Utilisation : Spécifiez la valeur de l'attribut de type. du contrôle de formulaire.
Exemple :
<input type="email" name="myEmail">
Description détaillée : Le type de contrôle de formulaire spécial n'est pas seulement utilisé pour personnaliser le clavier du téléphone mobile si le navigateur peut reconnaître que la saisie dans le contrôle de formulaire ne le fait pas. respectez les règles de type correspondantes, par exemple, il n'y a pas de symbole @ dans l'adresse e-mail ou la valeur d'entrée du contrôle de type numérique n'est pas un nombre valide, le navigateur marquera le contrôle pour indiquer une incompatibilité de type. Quelle que soit la condition d’erreur, typeMismatch renverra true.
3. patternMismatch
Objectif : Vérifier si l'entrée est dans un format valide selon les règles de format définies sur le contrôle de formulaire.
Utilisation : définissez l'attribut de motif sur le contrôle de formulaire et attribuez des règles de correspondance appropriées.
Exemple :
<input type="text" name="creditcardnumber" pattern="[0-9]{16}" title="A credit card number is 16 digits with no spaces or dashes">
Description détaillée : L'attribut pattern fournit aux développeurs un moyen puissant et flexible de définir un mécanisme de validation d'expression régulière pour les valeurs de contrôle de formulaire. Lorsque l'attribut pattern est défini pour un contrôle, patternMismatch renverra une valeur vraie tant que la valeur du contrôle d'entrée n'est pas conforme aux règles du modèle. Du point de vue des conseils d'utilisation et des références techniques, vous devez définir l'attribut title dans le contrôle de formulaire contenant l'attribut pattern pour illustrer le rôle de la règle.
4. tropLong
Objectif : éviter que les valeurs d'entrée contiennent trop de caractères.
Utilisation : définissez l'attribut maxLength sur le contrôle de formulaire.
Exemple :
<input type="text" name="limitedText" maxLength="140">
Détails : Si la longueur de la valeur d'entrée dépasse maxLength, la fonctionnalité tropLong retournera vrai. Bien que les contrôles de formulaire limitent généralement la longueur maximale des entrées utilisateur, il existe des situations dans lesquelles la longueur maximale peut être dépassée, par exemple en la définissant par programme.
5. rangeUnderflow
Objectif : Limiter la valeur minimale des contrôles numériques.
Utilisation : définissez l'attribut min pour le contrôle de formulaire et attribuez-lui la valeur minimale autorisée.
Exemple :
<input type="range" name="ageCheck" min="18">
Description détaillée : Dans un contrôle de formulaire qui nécessite une vérification de plage numérique, la valeur est susceptible d'être temporairement inférieure à la limite inférieure définie. À ce stade, la propriété rangeUnderflow de ValidityState renverra true.
6. rangeOverflow
Objectif : Limiter la valeur maximale des commandes numériques.
Utilisation : définissez l'attribut max pour le contrôle de formulaire et attribuez-lui la valeur maximale autorisée.
Exemple :
<input type="range" name="kidAgeCheck" max="12">
详细说明:与rangeUnderflow类似,如果一个表单控件的值比max更大,特性将返回true。
7、stepMismatch
目的:确保输入值符合min、max及step即设置。
用法:为表单控件设置step特性,指定数值的增量。
示例:
<input type="range" name="confidenceLevel" min="0" max="100" step="5">
详细说明:此约束条件用来保证数值符合min、max和step的要求。换句话说,当前值必须是最小值与step特性值的倍数之和。例如,范围从0到100,step特性值为5,此时就不允许出现17,否则stepMismatch返回true值。
8、customError
目的:处理应用代码明确设置及计算产生的错误。
用法:调用setCustomValidity(message)将表单控件置于customError状态。
示例:
passwordConfirmationField.setCustomValidity("Password values do not match.");
详细说明:浏览器内置的验证机制不适用时,需要显示自定义验证错误信息。当输入值不符合语义规则时,应用程序代码应设置这些自定义验证消息。
自定义验证消息的典型用例是验证控件中的值是否一致。例如,密码和密码确认两个输人框的值不匹配。只要定制了验证消息,控件就会处于无效状态,并且customError返回true。要清除错误,只需在控件上调用setCustomValidity("")即可。
以上就是详解HTML5中表单验证的8种方法介绍 的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!