La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  Javascript / DOM / Ajax
(Modérateurs: Shain, Netah, Lilian, lauryv, ToToMaStEr)
  Erreur dans un formulaire
« Précédent Suivant »
Pages: [1] 2 Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Erreur dans un formulaire  (Lu 28360 fois)
Erreur dans un formulaire
« sur: le 22-07-2014 a 15:13:01 »
mitsukk1992
Membre récent
*

Hors-Ligne

Messages: 16





Voir le Profil
Répondre avec citation

Bonjour,

Voici mon formulaire :

http://jsfiddle.net/Y4VU4/1/

J'aimerais que si l'utilisateur rentre un numéro de téléphone avec des lettres par exemple, un message d'erreur s'affiche.

A l'aide des expressions régulières j'ai réussi à faire ça et à insérer un message d'erreur, le problème c'est qu'il s'affiche sur une autre page alors que j'aimerais qu'il s'affiche sur la même page si possible à coté du champ "téléphone" et que ce champ de texte soit encadré en rouge, comme ici :

http://www.phpascal.com/programmatio...ormulaire.html

Sauf que je veux pas d'une alerte javascript

Pareil, si il ya plusieurs erreurs dans les champs à remplir, ces champs deviennent rouge avec le message d'erreur à coté.

Merci

Rapporter au modérateur  

Re:Erreur dans un formulaire
« Répondre #1 sur: le 22-07-2014 a 15:24:32 »
Chimnei
P'tit nouveau
**

Hors-Ligne

Messages: 194





Voir le Profil
Répondre avec citation

Modifier le CSS via du jquery pourrait répondre à ton problème.

Une astuce : crée différentes class dans ton css (input.normal, input.erreur)
Puis à l'aide de javascript, en cas d'erreur, tu modifie la class de l'input correspondant, et le tour est joué.

Pour les petits messages, tu as de nombreux choix.
Tu crées l'emplacement de chacun de ces messages (comme s'ils étaient affichés par défaut), puis tu mets un display:none; ou un width:0; + overflow:hidden;, et une autre class avec un display normal et un width/height désiré qu'il te suffit ensuite de changer avec du javascript.
Sinon, toujours en créant d'abord l'emplacement comme avant, mais tu modifie la taille (fermé/ouvert) avec un slideUp(0) / slideDown(0) en jquery (plus compliqué pour pas grand chose).

Je te conseille de manière générale de jouer avec les class css pour ne pas avoir à mettre de "style" dans le html. Switcher de class est très simple, surtout avec du jquery.

Rapporter au modérateur  

Référencement et Optimisation de vos sites Web vitrine ou e-commerce, mes services de White-Hat SEO à votre disposition ! (message privé pour toute demande)
Re:Erreur dans un formulaire
« Répondre #2 sur: le 22-07-2014 a 15:25:36 »
Chimnei
P'tit nouveau
**

Hors-Ligne

Messages: 194





Voir le Profil
Répondre avec citation

Et un "merci" (comme pour ta demande précédente) ne serait pas de refus, même si les solutions qui te sont proposés ne sont parfois pas bonnes à 100%.

Rapporter au modérateur  

Référencement et Optimisation de vos sites Web vitrine ou e-commerce, mes services de White-Hat SEO à votre disposition ! (message privé pour toute demande)
Re:Erreur dans un formulaire
« Répondre #3 sur: le 22-07-2014 a 15:33:45 »
mitsukk1992
Membre récent
*

Hors-Ligne

Messages: 16





Voir le Profil
Répondre avec citation

Ah vraiment désolé pour l'autre demande, j'avais résolu le problème et j'ai complétement oublié ce forum, merci à toi .

Pour mon problème j'ai réussi à faire ça :

Code:
<html>
    <head>
        <script type="text/javascript">
            function validate(xx)
            {
                var len = document.forms[0].elements.length;
                for(var i = 0; i < len; i++)
                {
                    if(document.forms[0].elements[i].type=="text" &&
                        document.forms[0].elements[i].id.indexOf('_obli')>-1 ) {
                        if (document.forms[0].elements[i].value.length=='') {
                            document.forms[0].elements[i].style.backgroundColor='#DBDBFF';
                            alert('champs obligatoire');
                            return false;
                        } else {
                            document.forms[0].elements[i].style.backgroundColor='#FFFFFF'
                        }
                    }
                }
           
        </script>
        <title>Formulaire</title>
    </head>
    <body>
        <form action="" onsubmit="return validate(this)">
            <p>
                <label for="firstname">First Name: </label>
                <input type="text" name="firstname" value="" id="firstname_obli" required  />
            </p>
            <p>
                <label for="lastname">Last Name: </label>
                <input type="text" name="lastname" value="" id="lastname_obli" required />
            </p>
            <p>
                <label for="phone">Phone: </label>
                <input type="text" name="phone" value="" id="phone" />
            </p>
            <p>
                <input type="submit" value="Submit">
            </p>
        </form>
    </body>


Mais le problème c'est que j'aimerais afficher mes propres messages et non "Veuillez compléter ce champ." et que ce message soit à coté du champ de texte

Rapporter au modérateur  
Re:Erreur dans un formulaire
« Répondre #4 sur: le 22-07-2014 a 15:40:57 »
Chimnei
P'tit nouveau
**

Hors-Ligne

Messages: 194





Voir le Profil
Répondre avec citation

Comme dit, pour faire tes propres messages, vois ces messages comme des éléments à part entière (des <div> message </div> par exemple), existant par défaut à côté de chaque champ dans ton formulaire, mais invisible à l’œil. Tu les créées et tu n'as plus qu'à les rendre visible quand y'a une erreur, invisible sinon et le tour est joué.

Par ailleurs, je te conseille de tester le jquery. Le code est tellement plus simple, l'API est énorme, autant que les fonctionnalités sans avoir même besoin de coder, juste avec des petites fonctions toutes faites. Certes la page prend un peu de poids, mais ce n'est rien comparé au gain de temps et de poids fait par des fonctions très bien codées.
Enfin, à toi de voir ^^

Rapporter au modérateur  

Référencement et Optimisation de vos sites Web vitrine ou e-commerce, mes services de White-Hat SEO à votre disposition ! (message privé pour toute demande)
Re:Erreur dans un formulaire
« Répondre #5 sur: le 22-07-2014 a 15:46:29 »
mitsukk1992
Membre récent
*

Hors-Ligne

Messages: 16





Voir le Profil
Répondre avec citation

Oh je comprends rien (gros débutant) je vais me contenter du code que j'ai inscrit précédemment ^^"

Merci quand même

Rapporter au modérateur  
Re:Erreur dans un formulaire
« Répondre #6 sur: le 22-07-2014 a 16:06:31 »
Chimnei
P'tit nouveau
**

Hors-Ligne

Messages: 194





Voir le Profil
Répondre avec citation

Je vais essayer de faire plus simple alors xD

imaginons ton formulaire :

<form action="" onsubmit="return validate(this)">
            <p>
                <label for="firstname">First Name: </label>
                <input type="text" name="firstname" value="" id="firstname_obli" required  />
            </p>
            <p>
                <label for="lastname">Last Name: </label>
                <input type="text" name="lastname" value="" id="lastname_obli" required />
            </p>
            <p>
                <input type="submit" value="Submit">
            </p>
</form>

tu vas rajouter des div comme ça :

<form action="" onsubmit="return validate(this)">
            <p>
                <label for="firstname">First Name: </label>
                <input type="text" name="firstname" value="" id="firstname_obli" required  />
                <div class="message_ok">ALERT</div>
            </p>
            <p>
                <label for="lastname">Last Name: </label>
                <input type="text" name="lastname" value="" id="lastname_obli" required />
                <div class="message_ok">ALERT</div>
            </p>
            <p>
                <input type="submit" value="Submit">
            </p>
</form>

-------
Ensuite, dans ton css, tu définis 2 mises en forme :

.message_ok { ton_css_normal (display:none; par exemple) }
.message_erreur { ton_css_en_cas_d'erreur (display:block; pour le rendre de nouveau visible) }

-------
Enfin, en javascript, tu auras :

Si (erreur)
alors input-qui-contient-l'erreur => ajouter la class "message_erreur" à la div correspondante
sinon input-qui-ne-contient-pas-d'erreur => supprimer la class "message_erreur" de la div correspondante

« Dernière Édition: le 22-07-2014 a 16:08:21 par Chimnei » Rapporter au modérateur  

Référencement et Optimisation de vos sites Web vitrine ou e-commerce, mes services de White-Hat SEO à votre disposition ! (message privé pour toute demande)
Re:Erreur dans un formulaire
« Répondre #7 sur: le 23-07-2014 a 11:44:54 »
mitsukk1992
Membre récent
*

Hors-Ligne

Messages: 16





Voir le Profil
Répondre avec citation

Merci de ton aide,

Dans ton exemple, j'ai toujours l'encadrée "Veuillez complétez ce champ" qui apparait or je voudrais qu'il n'y est pas cet encadré

Rapporter au modérateur  
Re:Erreur dans un formulaire
« Répondre #8 sur: le 23-07-2014 a 12:28:12 »
Chimnei
P'tit nouveau
**

Hors-Ligne

Messages: 194





Voir le Profil
Répondre avec citation

Tu as dû manquer cette partie là :

Citation:
.message_ok { ton_css_normal (display:none; par exemple) }

display: none;
ou
width:0px; overflow:hidden;
permettent de cacher la div justement

Afficher/cacher un élément grâce au css est une astuce fondamentale dans l'affichage dynamique compatible tout navigateur.

Cet article pourra t'aider, je te conseille de te pencher dessus : http://fr.openclassrooms.com/informatique/cours/tout-sur-le-javascript/le-css-via-js

Ou bien ce topic-là :
http://fr.openclassrooms.com/forum/sujet/div-cachervisible-htmlcss-18915

Rapporter au modérateur  

Référencement et Optimisation de vos sites Web vitrine ou e-commerce, mes services de White-Hat SEO à votre disposition ! (message privé pour toute demande)
Re:Erreur dans un formulaire
« Répondre #9 sur: le 23-07-2014 a 14:14:41 »
mitsukk1992
Membre récent
*

Hors-Ligne

Messages: 16





Voir le Profil
Répondre avec citation

Merci à toi, j'ai réussi à le faire mais avec une autre méthode.

Mon formulaire est fait avec un tableau et j'aimerais le refaire sans ce tableau, pour commencer j'ai fais ça :

http://jsfiddle.net/BEpzq/1/

Le problème c'est que je n'arrive pas à centrer le tout, que le formulaire soit au milieu de ma page.

Rapporter au modérateur  
Re:Erreur dans un formulaire
« Répondre #10 sur: le 23-07-2014 a 14:30:13 »
Chimnei
P'tit nouveau
**

Hors-Ligne

Messages: 194





Voir le Profil
Répondre avec citation

Sémentiquement, ce formulaire est incorrect. Les input doivent se trouver dans des conteneurs de type balise <p>.
Ensuite, pour le centrer, un petit div autour de ton formulaire et margin:auto; ça passera facilement.
Quant aux <br/> On ne les utilise jamais pour faire du graphisme. On l'utilise pour un retour forcé au milieu d'une ligne éventuellement, mais pour distinguer 2 paragraphe, on utilisera quand même la balise <p> (margin:0; si on ne veut pas d'espace entre les deux paragraphes)

http://jsfiddle.net/BEpzq/7/

Voilà ton formulaire beaucoup plus propre.

« Dernière Édition: le 23-07-2014 a 14:31:59 par Chimnei » Rapporter au modérateur  

Référencement et Optimisation de vos sites Web vitrine ou e-commerce, mes services de White-Hat SEO à votre disposition ! (message privé pour toute demande)
Re:Erreur dans un formulaire
« Répondre #11 sur: le 23-07-2014 a 14:41:06 »
mitsukk1992
Membre récent
*

Hors-Ligne

Messages: 16





Voir le Profil
Répondre avec citation

Merci pour ta patiente

J'aimerais juste que dans ton formulaire, les champs de textes soit séparé des labels, je sais pas si je suis claire (comme dans mon exemple : http://jsfiddle.net/BEpzq/1/ )

Rapporter au modérateur  
Re:Erreur dans un formulaire
« Répondre #12 sur: le 23-07-2014 a 14:52:28 »
Chimnei
P'tit nouveau
**

Hors-Ligne

Messages: 194





Voir le Profil
Répondre avec citation

Pas trop d'intérêt je trouve, hormis pour les lecteurs d'écran, mais sinon c'est juste pratique pour les boutons radio/case à cocher (vu qu'on peut cliquer sur le texte au lieu du bouton), mais bon.

Voilà, tout simplement :

http://jsfiddle.net/BEpzq/9/

Petite correction, je viens de comprendre l'utilité de ton css :
http://jsfiddle.net/BEpzq/19/

Et oublie pas que tu peux modifier le css de tes input ;p
http://jsfiddle.net/BEpzq/29/

« Dernière Édition: le 23-07-2014 a 15:03:10 par Chimnei » Rapporter au modérateur  

Référencement et Optimisation de vos sites Web vitrine ou e-commerce, mes services de White-Hat SEO à votre disposition ! (message privé pour toute demande)
Re:Erreur dans un formulaire
« Répondre #13 sur: le 24-07-2014 a 09:41:04 »
mitsukk1992
Membre récent
*

Hors-Ligne

Messages: 16





Voir le Profil
Répondre avec citation

Merci,

Je l'ai fais de cette façon :

Code:
   #table0{
       margin: 6px 0px 0px 430px;
   }

Rapporter au modérateur  
Re:Erreur dans un formulaire
« Répondre #14 sur: le 24-07-2014 a 09:46:45 »
Chimnei
P'tit nouveau
**

Hors-Ligne

Messages: 194





Voir le Profil
Répondre avec citation

Dans ce cas, il ne sera pas centré, ton tableau.
avec un :
Code:
margin : 3px auto 0;

tu aura ta marge de 3px au-dessus et il sera centré. A toi de voir tes besoins.

Rapporter au modérateur  

Référencement et Optimisation de vos sites Web vitrine ou e-commerce, mes services de White-Hat SEO à votre disposition ! (message privé pour toute demande)
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] 2 Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg