Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1561 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  question à propos de la validation d'un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question à propos de la validation d'un formulaire

n°2441508
tompouss
Petit chat
Posté le 28-02-2023 à 10:17:08  profilanswer
 

Bonjour,
 
je suis entrain de suivre une formation typescript en ligne et je ne comprends pas le choix du formateur concernant une expression booleenne.
 
 

Code :
  1. function validate(validatableInput: Validatable) {
  2.   let isValid = true;
  3.   if (validatableInput.required) {
  4.     isValid = isValid && validatableInput.value.toString().trim().length !== 0;
  5.   }
  6.   if (
  7.     validatableInput.minLength != null &&
  8.     typeof validatableInput.value === "string"
  9.   ) {
  10.     isValid =
  11.       isValid && validatableInput.value.length >= validatableInput.minLength;
  12.   }
  13.   if (
  14.     validatableInput.maxLength != null &&
  15.     typeof validatableInput.value === "string"
  16.   ) {
  17.     isValid =
  18.       isValid && validatableInput.value.length <= validatableInput.maxLength;
  19.   }
  20.   if (
  21.     validatableInput.min != null &&
  22.     typeof validatableInput.value === "number"
  23.   ) {
  24.     isValid = isValid && validatableInput.value >= validatableInput.min;
  25.   }
  26.   if (
  27.     validatableInput.max != null &&
  28.     typeof validatableInput.value === "number"
  29.   ) {
  30.     isValid = isValid && validatableInput.value <= validatableInput.max;
  31.   }
  32.   return isValid;
  33. }


 
Moi inuitivement j'aurais fait tout simplement ca:
 

Code :
  1. function validate(validatableInput: Validatable) {
  2.   let isValid = true;
  3.   if (validatableInput.required) {
  4.     isValid = validatableInput.value.toString().trim().length !== 0;
  5.   }
  6.   if (
  7.     validatableInput.minLength != null &&
  8.     typeof validatableInput.value === "string"
  9.   ) {
  10.     isValid = validatableInput.value.length >= validatableInput.minLength;
  11.   }
  12.   if (
  13.     validatableInput.maxLength != null &&
  14.     typeof validatableInput.value === "string"
  15.   ) {
  16.     isValid =validatableInput.value.length <= validatableInput.maxLength;
  17.   }
  18.   if (
  19.     validatableInput.min != null &&
  20.     typeof validatableInput.value === "number"
  21.   ) {
  22.     isValid = validatableInput.value >= validatableInput.min;
  23.   }
  24.   if (
  25.     validatableInput.max != null &&
  26.     typeof validatableInput.value === "number"
  27.   ) {
  28.     isValid = validatableInput.value <= validatableInput.max;
  29.   }
  30.   return isValid;
  31. }


 
Du coup j'aimerais savoir l'interet de l'approche du formateur.  :heink:  
 
Une idée ?


---------------
collectionneur de pâtes thermiques
mood
Publicité
Posté le 28-02-2023 à 10:17:08  profilanswer
 

n°2441630
rufo
Pas me confondre avec Lycos!
Posté le 02-03-2023 à 09:31:35  profilanswer
 

Je ne vois pas de différence entre ce que t'as mis pour le formateur et ta vision des choses :/
 
Edit : ah oui, j'avais pas vu le isValid &&  :sleep:


Message édité par rufo le 02-03-2023 à 13:26:58

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2441634
xtieu
Posté le 02-03-2023 à 10:24:20  profilanswer
 

tompouss a écrit :

Bonjour,
 
je suis entrain de suivre une formation typescript en ligne et je ne comprends pas le choix du formateur concernant une expression booleenne.
 
 

Code :
  1. function validate(validatableInput: Validatable) {
  2.   let isValid = true;
  3.   if (validatableInput.required) {
  4.     isValid = isValid && validatableInput.value.toString().trim().length !== 0;
  5.   }
  6.   if (
  7.     validatableInput.minLength != null &&
  8.     typeof validatableInput.value === "string"
  9.   ) {
  10.     isValid =
  11.       isValid && validatableInput.value.length >= validatableInput.minLength;
  12.   }
  13.   if (
  14.     validatableInput.maxLength != null &&
  15.     typeof validatableInput.value === "string"
  16.   ) {
  17.     isValid =
  18.       isValid && validatableInput.value.length <= validatableInput.maxLength;
  19.   }
  20.   if (
  21.     validatableInput.min != null &&
  22.     typeof validatableInput.value === "number"
  23.   ) {
  24.     isValid = isValid && validatableInput.value >= validatableInput.min;
  25.   }
  26.   if (
  27.     validatableInput.max != null &&
  28.     typeof validatableInput.value === "number"
  29.   ) {
  30.     isValid = isValid && validatableInput.value <= validatableInput.max;
  31.   }
  32.   return isValid;
  33. }


 
Moi inuitivement j'aurais fait tout simplement ca:
 

Code :
  1. function validate(validatableInput: Validatable) {
  2.   let isValid = true;
  3.   if (validatableInput.required) {
  4.     isValid = validatableInput.value.toString().trim().length !== 0;
  5.   }
  6.   if (
  7.     validatableInput.minLength != null &&
  8.     typeof validatableInput.value === "string"
  9.   ) {
  10.     isValid = validatableInput.value.length >= validatableInput.minLength;
  11.   }
  12.   if (
  13.     validatableInput.maxLength != null &&
  14.     typeof validatableInput.value === "string"
  15.   ) {
  16.     isValid =validatableInput.value.length <= validatableInput.maxLength;
  17.   }
  18.   if (
  19.     validatableInput.min != null &&
  20.     typeof validatableInput.value === "number"
  21.   ) {
  22.     isValid = validatableInput.value >= validatableInput.min;
  23.   }
  24.   if (
  25.     validatableInput.max != null &&
  26.     typeof validatableInput.value === "number"
  27.   ) {
  28.     isValid = validatableInput.value <= validatableInput.max;
  29.   }
  30.   return isValid;
  31. }


 
Du coup j'aimerais savoir l'interet de l'approche du formateur.  :heink:  
 
Une idée ?


 
À la fin de ta fonction isValid sera égal au dernier if dans lequel il sera passé. Si tous tes tests renvoient false, mais le dernier true ton isValid vaudra true.
Celui du formateur opère un et logique entre le true défini à l'init de isValid et le retour de chaque test joué dans chacun des if et donc à partir du moment où y'a un false dans les tests, isValid sera à false au final.


---------------
There's more to life than the boy in that mirror.
n°2441642
mechkurt
Posté le 02-03-2023 à 11:55:18  profilanswer
 

+1
 
Perso j'aurais mis le isValid dans le if plutôt qu'avec un && dans l'affectation, je trouves ça plus lisible et évite un test non nécessaire, mais chacun voit midi à sa porte...
 
Y'a aussi l'option de mettre un return false à chaque test, plutôt que continuer une série de test qui de toute façon devra renvoyer false à la fin.


---------------
D3
n°2441643
tompouss
Petit chat
Posté le 02-03-2023 à 12:34:06  profilanswer
 

Merci pour vos réponses :)
j'aime bien savoir le pq d'un choix, c'est important surtout s'il ya une raison précise.
 
Mais je me suis rendu compte que la question avait déjà été posée dans la rubrique  question & réponse de la formation, mais j'ai pas encore l'habitude de cette plateforme.
 
J'aime bien l'idée de @mechkrut de retourner false à chaque test, ce serait à priori plus lisible, donc je vais tester ca


---------------
collectionneur de pâtes thermiques
n°2441672
MaybeEijOr​Not
but someone at least
Posté le 02-03-2023 à 21:02:21  profilanswer
 

Moi pour ce genre de tests je préfère avoir un truc dégueulasse qui effectue tous les tests et retiens le résultat de chaque test. Car typiquement c'est la saisie d'un mot de passe où tu tentes une fois, ça ne va pas, tu corriges, tu passes le premier test, ça ne va toujours pas car cette fois tu ne passes pas le second test, etc.
Très pénible, même si normalement en affichant un message d'erreur rappelant tous les tests qui seront effectués pallie souvent d'une manière simple au problème.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  question à propos de la validation d'un formulaire

 

Sujets relatifs
Validation Apple de l'application de rencontre MadintouchValidation formulaire avec la touche Entrée [Résolu]
Question analyse/visualisation de données, niveau noobDivers - problème de formulaire HTML / CSS / JS
Inclure une page suivant un formulaireQuestion sur les conditions inversées
Afficher un bouton "envoyer" après validation reCAPTCHAProblème reception mail depuis un formulaire (OVH)
Comment afficher une image provenant d'un formulaire type "radio" 
Plus de sujets relatifs à : question à propos de la validation d'un formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR