verification d'un formulaire [RESOLU] - HTML/CSS - Programmation
Marsh Posté le 06-02-2006 à 12:06:10
Le onsubmit se met sur la balise form pas sur le balise input...
Par ailleurs as tu chargé le fichier js sur ton serveur? Tu y a mis les bons droits?
Marsh Posté le 06-02-2006 à 14:07:01
hé bien oui le fichier est sur le serveur, j'ai fai des test pour voir si l'acces jusqu'au fichier se faisait et la dessus aucun probleme et au niveau des droits je ne sais pas je vais regardé mais je doute que cela vienne de ca
Marsh Posté le 06-02-2006 à 14:30:12
bon j'ai verifier l'acces au fichier aucun pb, au niveau des droits rien a redire, mais il ne me prend toujous pas mon script en compte
Marsh Posté le 06-02-2006 à 14:59:47
bon je fai des test ds tous les sens et ca m'énerveuh
l'entete de mon formulaire ressemble a ca:
Citation : <form id="form1" name="formulaire" class="police" method="post" action="formMail2.asp" onsubmit="validation(this.form);"> |
formMail2.asp me permet d'envoyer les donné du formulaire dans un email
j'ai refait le JS avec de getElementById("id" )
pour mon script JS je le declare comme ca :
Citation : <script language="javascript" src="/scripts/verification_formulaire.js" type="text/javascript"></script> |
en fait le je ne sais plus quoi essayé...
siouplé
Marsh Posté le 06-02-2006 à 15:37:43
Serait-il possible d'avoir un peu plus de description sur l'erreur?
Par exemple dans la console JS ( de IE ou FF) y'a-t-il des messages d'erreurs?
T'as pas une url pour qu'on puisse regarder?
Marsh Posté le 06-02-2006 à 15:46:11
en fait je vien de découvrir la console js de FF
et j'ai une erreur:
document.formulaire.getElementById is not a function
et euh pour l'adresse c'est pas que je veux pas mais pour le moment je peux pas la données
(restriction des patrons)
Marsh Posté le 06-02-2006 à 15:57:53
Code :
|
faut pas rajouter formulaire au milieu...
Marsh Posté le 06-02-2006 à 16:46:33
merci pour cette precision
mais euh pourquoi le meme script marchait en local alors ??
Marsh Posté le 06-02-2006 à 17:22:19
bon je reviens a la charge parce que ca m'enerve encore et toujours
mon script fonctionne presque bien mais la j'arrive ds me limite du javascript avec le gestion du RETURN
dans ma balise <form> j'ai action=formail.asp pour gerer l'envoie du mail avec les donné du formulaire et j'aiaussi onsubmit=validation(this.form) popur verifier les champs, mais le pbc'est que j'ai bien une alert si il manque des infos ds le formulaire mais une fois que je clique sur OK ca me met quand meme la page suivante (votre demande est prise en compte) comment je peux faire???
Marsh Posté le 06-02-2006 à 17:27:58
Si tu as une erreur tu dois faire un
Code :
|
Afin que l'evenement submit soit "annulé"...
Si tu n'as pas d'erreur
Code :
|
Marsh Posté le 06-02-2006 à 17:34:18
c'est bien ce que j'ai fai, j'ai mis un bout de mon code a mon premier post.
j'ai meme essayé en enlevant le
Citation : }else{ return true} |
mais non rien a faire il me charge tout le temps la page d'apres
et pour le bouton envoyer du formiulaire j'ai mis ca:
Citation : <input type="submit" name="Submit" value="Envoyer" tabindex="11" align="right" /> |
je vais esayer en changeant le type
Marsh Posté le 06-02-2006 à 17:42:29
petit truc qui manque dans ta balise form, il faut mettre le return:
Code :
|
Marsh Posté le 06-02-2006 à 17:51:12
merci beaucoup ca marche enfin et je me doutais que c'etai une histoire avec ces foutus return...
Marsh Posté le 06-02-2006 à 18:05:39
et euh une petite question :
bon je fais une verification champs par champs ce qui fais que si il y a plusieurs champs avec des données erronée ca peut etre fastidieurx de cliquer sur validé a chaque fois et de se rendre compte qu'il faut encore changé autre chose,
et je vais me lancé dans une amelioration de ce script en faisant en sorte q'il n'y ai qu'un seul fenetre qui s'affiche ou juste un petit label en rouge (par exemple) et que tout les champs avec des erreurs soit avec un fond rouge mais je ne vois pas comment stocké tout les erreurs pour les traiter d'un coup???
qui peut m'aider, je veu po un code tout fais mais des piste pour le faire
merci les jeun's
Marsh Posté le 06-02-2006 à 18:23:40
Bin tu as plein de solutions!!!
Tu crées une variable et tu concatènes les messages d'erreur au fur et à mesure dedans et en passant tu mets les inputs "pabons" en rouge via css.
Ou alors tu crées un tableau, et tu push chaque input en erreur dedans. Puis tu traites ton tableau...
Marsh Posté le 07-02-2006 à 10:55:02
Erreur souvent commise et l'uatre jour j'ai passé 2 heures à comprendre ma connerie
Marsh Posté le 07-02-2006 à 11:10:00
<form onsubmit="">
j'avais directement mis : onsubmit="mafunction()"
alors qu'il fallait mettre onsubmit="return mafunction()"
Marsh Posté le 07-02-2006 à 11:12:34
oki
sinon en ce qui concerne mon petit script
j'arrive a recupere les erreur mais je n'arrive pas a faire modifier le comportement des champs pour qu'il devienne rouge
voila comment je compte m'y prendre (ca ne marche toujours pas (mais bon je crois que c'est normal)
Citation : //javascript document |
Marsh Posté le 07-02-2006 à 11:19:06
Code :
|
4 fautes sur une ligne, erreur de recopie?
Moi j'aurais plutot fait comme ça:
Code :
|
Marsh Posté le 07-02-2006 à 13:12:14
push est une méthode de l'objet array qui permet de rajouter une ligne dans le tableau
Marsh Posté le 07-02-2006 à 14:50:33
j'ai fai toute mes modif par rapport a mon evolution du script et je trouve encore un pb
j'ai un booleen qui est a true par defaut et si il y a un des champs de vide je le passe a false et apres je fai return mon booleen comme ca si c false le onsubmit de mon form ne marche po mai en fait ca fonctionne pas???
voila le fautif:
Citation : //javascript document |
je l'ai raccourci mai la ya le principal et je ne comprend po prkoi il veu po mon return
Marsh Posté le 07-02-2006 à 15:44:34
bon comme d'hab j'aurais pas fait pareil
j'aurais fait comme ça:
Code :
|
edit: tu feras gaffe dans ton for tu boucles sur i mais tu te sers de j....
Marsh Posté le 07-02-2006 à 16:17:34
bon
j'ai rajouter le () apres le function validation() mais toujour rein il ne veux rien entendre sur les return,
le seul script qui fonctionne c'est celui que j'avais au depart
Citation : function validation() |
alors je sais pa peut etre qu'avec tout le return false au bout d'un moment ca passait mais les autre j'ai fai gaffe au non de la fonction nom du ficher et tout et je n'y comprend rien
Marsh Posté le 07-02-2006 à 16:40:19
la c'est avec des popup et ca marche et le code du script est celui de dessus
Marsh Posté le 08-02-2006 à 10:02:31
bon bon bon j'ai fai des changement et je me suis séparé de la boucle for
bon maintenant la pb est different j'arrive a obtenir une coloration des champs ou il y a une erreur mais il passe quand meme a la page suivante (votre demande est prise en compte)
en fait j'ai enlever de chaque bloc if le return = false et j'ai mis a la place un boleen et a la fin si le booleen est a false return est aussi a false, et bien c'est ca qu'il ne me prend pas en compte.....
voila la nouveau script
Citation : function validation() |
je vois bien que le probleme vient du return mais je n'arrive pas a comprendre pourquoi il se comporte de cette maniere et comment y remedier....
Marsh Posté le 08-02-2006 à 10:10:03
tu ne sais pas programmer à première vu
et tu ne connais rien non plus au javascript et je suis réaliste, ton code est bourré de fautes !!
A koi te sert erreur.push alors que tu passes tes éléments un par un c'est n'importe quoi, la premiere solution qu'anapajari t'a donné était la meilleure
et puis pour la fin on voit un gros manque de réflexion :
if (statut = false) {
return false;
}
là il te manque un deuxième égal car automatiquement tu attribut false à statut
if (statut == false) {
return false;
}
et puis pourquoi faire une condition qui ne sert à rien alors que tu peux directement retourner statut
return statut;
Marsh Posté le 08-02-2006 à 10:31:02
pas a dire c'est vraiment pas beau comme code
Essaye avec un truc dans le genre:
Code :
|
code non testé & non garanti bug proof
Marsh Posté le 08-02-2006 à 10:40:15
je suis d'accord mon code n'est pas tres beau mais quand on le regarde il devrait tourner sans probleme, non ????
Marsh Posté le 08-02-2006 à 11:23:40
Ben nan ton code il tourne pas, je sais pas, si tu fais un code tu dois être capable de dire toi même s'il va tourner ou pas, sinon c'est que tu es un mauvais programmeur
tout de suite j'ai vu que ton code était pourri et qu'il y avait des lignes en trop
Marsh Posté le 08-02-2006 à 11:48:19
teuh teuh teuh
mon code tourne et la seul chose qui ne fonctionne pas est la coloration de champs erronées apres je sais tres bien qu'a la vue de la redondance des bloc IF une regroupement est possible mais je prefere resté sur quelque chose de simple et plus long a taper. Ensuite c'est sur le code d'anapajari est plsu concis,(voir dessous).
anapajari a écrit : bon comme d'hab j'aurais pas fait pareil
|
gatsu35 a écrit : Ben nan ton code il tourne pas, je sais pas, si tu fais un code tu dois être capable de dire toi même s'il va tourner ou pas, sinon c'est que tu es un mauvais programmeur |
Mon fonctionnement pour coder est peut etre particulier mais je me satisfait de cette methode ca me demande certaibnement plus de travail mais je prefere
mais je sais aussi que vos remarque sont tres pertinentes et que prends compte a chaque fois exemple la methode push que tu m'a expliquer (et je t'en remercie)
alors dire que mon code est pourri n'est pas tres sympa surtout qu'il tourne... (a peu pres)
mais voila il y a les noob et les pas noob et malgré les efforts que je faits je galere mais ca rentre quand meme dans ma petite cervelle
et c'est vrai que le web n'est pas m'a passion et que malgré la simplicité je bloque sur des truc tres con mais je m'y mets j'y suis obligé...
mais n'ai crainte je t'aime bien quand meme Gatsu35 car tu sais repondre a un post avec des explication a la clef c'est juste que je trouve pas sympa ta remarque (oups je l'ai mis deux fois)
je comprend quand meme ecq ue tu me met c'est juste que je n'arrive pas a pondre de suite un code en 20 ligne je prefere passer par ce que je maitrise et ensuite je nettoie le code (mais ensuite)
bon et puis si tu passe pres de naoned arrete et je ta paie un coup
et puis quand je finirais ce site je metterai l'adresse sur le forum et tu pourra voir ma reconnaissance (tu regarderas le code source et les commentaires
Marsh Posté le 08-02-2006 à 12:01:20
pour le onsubmit et le return oui j'ai essayé et pour modifier le css avec les input erronées je pense que c'est ce que j'essaye de faire.
ensuite la premiere methode d'anapajari que tu cite je l'ai essayé et je suis revenu avec mon code bourré de bloc if car justement il n'y avait pas de prise en compte du return (je ne sais pas pourquoi j'ai essaye plein de facon et je me rend compte qu'apres de multiple test qu'il n'y a que cette solution qui me fait revenir ur le page du formulaire
ps tu m'en veut hein di hein...
honnetement j'aurais été incapable de faire ca:
Citation : for(i=0;i<fieldsNotEmpty.length;i++){ |
Marsh Posté le 06-02-2006 à 12:02:14
bonjour tout le monde,
voila j'ai un formulaire et je veux faire une verification sur la saisie de certain champs, jusque la pas de probleme,, le pb que je rencontre c'est que moment du clique sur le bouton il ne me prend pas en compte mon formulaire et fais comme si tous c'es bien passé.
Quand je le faisias en local tout se passais bien mais depuis que je fais mes test en ligne ca passe plus....
dans le formulaire j'ai mis ca:
<input type="submit" name="Submit" value="Envoyer" onsubmit="validation();" />
validation() est ma fonction pour verifier et elle est dans un fichier js externe
function validation()
{
var email = document.formulaire.email.value;
if (email.search(/^[_a-z0-9-]+(.[_a-z0-9-]+)*[^._-]@[a-z0-9-]+(.[a-z0-9]{2,4})*$/) == -1)
{
alert ('entrez une adresse Email valide');
document.formulaire.email.focus();
return false;
}
else {return true;}
}
et si quelqu'un pouvait m'expliquer comment je peux faire pour ne plus avoir une fenetre alert mais un petit label qui fait par des erreurs et les champs avec les erreurs se mettent en rouge (ca serait le petit plus mais c'est pas important)
Message édité par bedomon le 09-02-2006 à 10:01:53