un peu d'huile :
>>Moi aussi je n'ai qu'une seule fonction de vérification par formulaire
moi, je n'est qu'une fonction de verif pour tous mes formulaires, j'ai bien dis tous
a++
]]>Oui c'est fastidieux, mais un ordinateur ne sait faire que ce qu'on lui dit de faire, et si tu as 10 vérifications différentes à faire, il faut les écrire. Tu peux cependant parfois économiser un peu de code avec par exemple l'attribut maxlength="20" dans une balise input qui t'évitera une ligne de code et une gestion d'erreur associée. Mais te restera à l'écrire pour une longueur minimale. Si tous tes champs ont la même longueur minimale, alors tu n'as qu'un test à faire pour ce critère (via un .each() par exemple qui est parfait pour cela). Mais on ne peut pas toujours tout standardiser.
@Pierrot
Le chaînage d'instructions en Jquery on connait, c'est ton algo qui m'interesse.
++
Mon exemple je sais qu'il peut être opti niveau ecriture, et je l'ai déjà dit.
]]>sans if else var truc1 var machin2
c'est du potage :D
c'est illisible
a++
]]>Mes remarques
1) l'attribut reg n'est pas compatible w3c
2) Récupérer la valeur d'un champ a vérifier je le fait en une seule instruction avec $("#id_input_choisi").val(); et non 4
3) Je ne vois toujours pas la valeur ajoutée de ta proposition
pour le 1, je suis d'accord.
pour le 2, tu ne vois pas que je ne récupère pas que la valeur ??????????????
et pour info, je peux récupérer la valeur, la regexp, si le champ est obligatoire et plus encore en 1 seule ligne.
et pour le 3, moi, je la connais
dans mes applis, et toutes mes applis, je n'est qu'une seule fonction de verif des champs
a+
]]>
var pattern1=new Regexp("pattern a"); var $input1=$("#id_input1").val(); if($input1.match(pattern1)){ ... } else {...}
var pattern2=new Regexp("pattern b"); var $input2=$("#id_input2").val(); if($input2.match(pattern2)){ ... } else {...}
var pattern3=new Regexp("pattern c"); var $input3=$("#id_input3").val(); if($input3.match(pattern3)){ ... } else {...}
var pattern4=new Regexp("pattern d"); var $input4=$("#id_input4").val(); if($input4.match(pattern4)){ ... } else {...}
J'ai détaillé pour que tout le monde comprenne l'exemple même si on peut encore opti un peu au niveau variables et au niveau de l'écriture au niveau jquery.
je suis impatient
++
Ps: J'en ai une perso qui consiste à passer par un array de pattern avec un compteur qui sert d'index dans le .each mais qui implique que l'on connaisse à l'avance l'ordre des champs dans le formulaire et que l'on ai qu'un seul type de test à appliquer à chaque input.
]]>Je viens de lire qu'à l'instant tes réponses, et excuse moi, mais je reste encore dubitatif de l'intérêt de ce que tu fait. A ce stade ce qui est certain pour moi c'est qu'un de nous deux n'a pas compris un truc.
Mes remarques
1) l'attribut reg n'est pas compatible w3c
2) Récupérer la valeur d'un champ a vérifier je le fait en une seule instruction avec $("#id_input_choisi").val(); et non 4
3) Je ne vois toujours pas la valeur ajoutée de ta proposition
++
]]>et dans le .each , a la place des ...........................................
çà va comme çà ?
a++
]]>a++
]]>... la class du champs,...
la verification de chaque champs...
la partie field est le nom du champs, et field_check, c'est le nom du champs + check...
donc pour chaque champs je dois tout verifier
Trop, c'est trop, cela sort de mon champ sémantique.
]]>C'est bien beau tout ça, mais admettons le cas où dans le formulaire concerné il y ait 5 champs input pour lesquels une validation de saisie passe par l'application d'une regexp. Si la même regexp peut s'appliquer aux 5 champs, la solution de Pierrot prends tout son sens. En effet
permets ainsi de diviser le code de vérification par 5, ce qui est très profitable. Par contre, dans le cas contraire (celui qui est cité dans ce post), c'est à dire le cas où chaque champ input nécessite une vérification qui lui est propre, cette fonction se transforme en simple figure de style qui rajoute au code existant d'une manière inutile, car il faudra différencier en son sein chaque champ pour y appliquer la vérification adéquate, chose qui doit de toute manière être faite avec ou sans la fonction .each
++
]]>sinon, pas de sousiS mon pti MK :D
a++