Problème de controle formulaire [Résolu]

Signaler
Messages postés
5
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
15 octobre 2008
-
Messages postés
5
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
15 octobre 2008
-
bonjour à tous,
voilà mon problème...
J'ai fait un formulaire et un premier controle en javascript.
Or lorsque le contrôle s'effectue, si un champ est vide par exemple l'alert fonctionne mais la page se recharge et efface toutes les données saisies..
là je pète un cable ..
faut m'aider les gars..

autre précision, lorsque je met "/" dans action pour mon form ça ne recharge pas la page... bizarre ... voilà le sript de contrôle:
function chekForm() {
            if (document.forms["devis"].elements["nom"].value==""){
            alert("Merci d'indiquer votre nom");
            return false;
            }
            if (document.forms["devis"].elements["prenom"].value==""){
            alert("Merci d'indiquer votre prenom");
            document.forms["devis"].elements["prenom"].prenom.focus();
            return false;
            }
            if (document.forms["devis"].elements["ville"].value==""){
            alert("Merci d'indiquer votre ville");
            document.forms["devis"].elements["ville"].ville.focus();       
            return false;
            }
            if (document.forms["devis"].elements["adresse"].value==""){
            alert("Merci d'indiquer votre adresse");
            document.forms["devis"].elements["adresse"].adresse.focus();       
            return false;
            }
            if (document.forms["devis"].elements["ccp"].value==""){
            alert("Merci d'indiquer votre code postal");
            document.forms["devis"].elements["ccp"].adresse.focus();       
            return false;
            }
           
            if (document.forms["devis"].elements["email"].value==""){
            alert("Merci d'indiquer votre email");
            document.forms["devis"].elements["email"].adresse.focus();   
            return false;
            }
            if (!isMail(document.forms["devis"].elements["email"].value)) {
                alert("Merci d'indiquer un Mail valide");
                document.forms["devis"].elements["email"].focus();
                document.forms["devis"].elements["email"].select();           
                return false;
                }
       
            if (document.forms["devis"].elements["typetravail"].selectedIndex==0){
            alert("merci d'indiquer un type de travail ou le cas échéant de selectionner 'autre'");
            document.forms["devis"].elements["typetravail"].focus();
            return false;
            }

            if (!(document.forms["devis"].elements["norm"].checked)||(document.forms["devis"].elements["suiv"].checked)||(document.forms["devis"].elements["rec"].checked))    {
            alert("vous devez choisir un mode d'envoi de document");
                return false;
            }

            if (!(document.forms["devis"].elements["parmail"].checked)||(document.forms["devis"].elements["surcd"].checked)||(document.forms["devis"].elements["partirage"].checked))
                {           
                alert("vous devez choisir un mode de reception de document");
                return false;
                }       
        return true;
document.forms["devis"].submit();
}

9 réponses

Messages postés
5
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
15 octobre 2008

laisse tomber c'était une simple erreur dans le code javascript... merci quand mm pour tes conseils..
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bonjour,
pas contrôlé ton script,
mais comme j'y vois un document.forms["devis"].submit();
je pense que tu ne respectes pas les règles de base

le principe :

<script>
function controle()
{ contrôles des champs
si erreurs : return false;
sinon : return true;
}
</script>

<form onsubmit="return (controle());" ....
...

</form>

et surtout pas de submi en js.

@+
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
je disais : surtout pas de submit en js,
mais non plus, pas de onclick dans le bouton submit..
          Bul [mon Site] [M'écrire]         
Messages postés
5
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
15 octobre 2008

merci pour ta réponse rapide..
j'ai déjà fait les changements et ça ne fonctionne toujours pas quand je submit, ça controle et si y'a un champs vide ça efface tout...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
parce que tu ne fais pas comme je t'ai indiqué !



si tu n'y parviens pas, met nous ton javascript+le formulaire ...
AH !!! NON ! UN EXTRAIT ! avec 1 seul champ , un exemple quoi !
sinon... ça décourage !

          Bul [mon Site] [M'écrire]         
Messages postés
5
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
15 octobre 2008

bon , j'ai fait exactement ce que tu m'as indiqué mais voilà donc les codes :

function chekForm() {
            if (document.forms["devis"].elements["nom"].value==""){
            alert("Merci d'indiquer votre nom");
            return false;
            }
            if (document.forms["devis"].elements["prenom"].value==""){
            alert("Merci d'indiquer votre prenom");
            document.forms["devis"].elements["prenom"].prenom.focus();
            return false;
            }
            if (document.forms["devis"].elements["ville"].value==""){
            alert("Merci d'indiquer votre ville");
            document.forms["devis"].elements["ville"].ville.focus();       
            return false;
            }
            if (document.forms["devis"].elements["adresse"].value==""){
            alert("Merci d'indiquer votre adresse");
            document.forms["devis"].elements["adresse"].adresse.focus();       
            return false;
            }
            if (document.forms["devis"].elements["ccp"].value==""){
            alert("Merci d'indiquer votre code postal");
            document.forms["devis"].elements["ccp"].adresse.focus();       
            return false;
            }
           
            if (document.forms["devis"].elements["email"].value==""){
            alert("Merci d'indiquer votre email");
            document.forms["devis"].elements["email"].adresse.focus();   
            return false;
            }
            if (!isMail(document.forms["devis"].elements["email"].value)) {
                alert("Merci d'indiquer un Mail valide");
                document.forms["devis"].elements["email"].focus();
                document.forms["devis"].elements["email"].select();           
                return false;
                }
       
            if (document.forms["devis"].elements["typetravail"].selectedIndex==0){
            alert("merci d'indiquer un type de travail ou le cas échéant de selectionner 'autre'");
            document.forms["devis"].elements["typetravail"].focus();
            return false;
            }

            if (!(document.forms["devis"].elements["norm"].checked)||(document.forms["devis"].elements["suiv"].checked)||(document.forms["devis"].elements["rec"].checked))    {
            alert("vous devez choisir un mode d'envoi de document");
                return false;
            }

            if (!(document.forms["devis"].elements["parmail"].checked)||(document.forms["devis"].elements["surcd"].checked)||(document.forms["devis"].elements["partirage"].checked))
                {           
                alert("vous devez choisir un mode de reception de document");
                return false;
                }
                return true;        
}

et un bout de mon code html..................................................................................................................................................

<form name="devis" method="post" action="#nogo" onSubmit="return (chekForm(this.form));" enctype="multipart/form-data">
                Demande de devis

                <fieldset id="coordonnees">
                <legend>Vos coordonnées</legend>
               
                    <label for="nom" title="Veuillez saisir votre nom en lettres majuscules"
                    class="oblig">* Nom :
                    </label>
                    ex : 'MARTIN'

                <label for="adresse" title="Veuillez saisir votre adresse" class="oblig">* Adresse :
                </label>
                       
   
                <label for="tel" title="Veuillez saisir votre téléphone" class="oblig">* Tel :
                </label>
                                   
               
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
tu dois ne rien avoir dans action de la balise form

si onsubmit n'est pas utilisé, ou mal, ou la
fonction ne retourne pas false... la page est rechargée
donc les champs du formulaire remis à l'état initial
probablement vide dans ton cas.

          Bul [mon Site] [M'écrire]         
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
<script>
function chekForm() {
            if (document.devis.nom.value==""){
            alert("Merci d'indiquer votre nom");
            return false;
            }
                return true;       
}
</script>

<form name="devis" method="post"
        action="javascript:alert('ok')"
        onSubmit="return (chekForm());"
        enctype="multipart/form-data">
                   
                   
</form>

j'ai limité à 1 seul champ !!!!!     pour simplifier, t'aurais pu le faire !!!!

et remplacer action par un message javascript

    Bul [mon Site] [M'écrire]         
Messages postés
5
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
15 octobre 2008

certe mais là le problème est ou???
je ne comprend pas ...