IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Controler un formulaire


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2003
    Messages : 52
    Points : 45
    Points
    45
    Par défaut Controler un formulaire
    Bonjour,

    J'ai un formulaire tout ce qu'il y a de plus normal.

    Le problème que je rencontre est le suivant :
    Dans ce formualire, j'ai un champ SELECT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <SELECT CLASS='ChoixOption' NAME='option2' SIZE='1'>
    <OPTION VALUE='0' SELECTED>Sélection</OPTION>
    <OPTION VALUE='205'>6 mm</OPTION>
    <OPTION VALUE='207'>8 mm</OPTION>
    <OPTION VALUE='209'>10 mm</OPTION>
    </SELECT>
    J'aimerais, au moment ou l'utilisateur clique sur le bouton de validation, lancer un script qui contrôle le choix effectué sur ce champ SELECT.

    En effet, s'il n'a pas fait de choix, le valeur sera 0. Or, il faut qu'il choisisse une valeur.

    J'aimerai donc lancer une boîte de dialogue si la valeur du select est toujours 0 au moment ou l'utilisateur clique sur le bouton submit.
    Cette boîte de dialogue l'informant qu'il doit choisir une valeur dans la liste.

    J'espère que j'ai été assez clair

    En tout cas, je vous remercie de votre aide.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    La fonction JS :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function formOK(leformu){
       if(leformu.option2.value==0){
       alert('Remplis moi ce champs vide...');
       return false;
       }
    }

    Le bouton submit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="submit" value="go" onclick="javascript:return formOK(this.form)" />

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="go" onclick="javascript:return formOK(this.form)" />
    onclick n'attend à mon avis pas grand chose d'autre que du javascript...
    enfin moi je n'ai jamias vu un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="go" onclick="recettedecuisine:soupedortiesàlacrème" />
    je pense donc que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="go" onclick="return formOK(this.form)" />
    est largelment suffisant

  4. #4
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2003
    Messages : 52
    Points : 45
    Points
    45
    Par défaut
    Merci, ca fonctionne parfaitement ^^

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut
    Je tiens a m'excusez mais je n'arrive pas a faire marcher ce script...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function formOK(){
     
       if(document.myfom.totalmonday.value>1){
       alert('The workload for monday is too high ');
       return false;
       }
     if(document.myfom.totaltuesday.value>1){
       alert('The workload for tuesday is too high ');
       return false;
       }
       if(document.myfom.totalwednesday.value>1){
       alert('The workload for wednesday is too high ');
       return false;
       }
       if(document.myfom.totalthursday.value>1){
       alert('The workload for thursday is too high ');
       return false;
       }
       if(document.myfom.totalfriday.value>1){
       alert('The workload for friday is too high ');
       return false;
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='submit' name='action' value='Save' onclick='return formOK();' >;
    Merci pour votre aide...

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par ChrisMan
    Je tiens a m'excusez mais je n'arrive pas a faire marcher ce script...
    Mieux vaut préciser ce qui ne marche pas comme prévu.

    Si c'est qu'il n'est jamais envoyé, ajoute en dernière ligne de ta fonction de verif : onsubmit attends false ou true;
    Là tu renvoies false ou ... rien

    Si les symptômes persistent, précise le dysfonctionnement

    A+

    PS : Ah ouaiiiis ! Avec de la crême ça peut être pas mal

  7. #7
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut
    Non en réalité, au contraire, le formulaire s'envoit toujours.
    Il s'execute tout le temps et ne controle rien...

    J'viens de comprendre l'histoire de la creme...

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par ChrisMan
    Non en réalité, au contraire, le formulaire s'envoit toujours.
    Il s'execute tout le temps et ne controle rien...
    Rhoooo !!
    @ SpaceFrog : faut pas les faire trop fermenter les orties (bon d'accord, j'avais rien vu non plus à la 1° lecture)

    @ChrisMan : ta fonction de verif doit être appelée sur le onsubmit du <form> et non sur le onclick du bouton submit

    A+

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    ... le name="action" du bouton risque aussi de te poser des pb (action => form).

  10. #10
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut
    J'ai enlevé le 'name', et je l'ai mis sur le onsubmit de mon formulaire mais ca continue a tout envoyer !!
    Pourtant dans l'exemple du dessus (qui marche apparement pour quelqu'un) c'est bien un onclick sur le bouton...
    Mais peu importe la, les 2 ne marchent pas. J'avais deja un onSubmit sur mon formulaire est ce que ca peut empecher le fonctionnement du onClick ?

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par ChrisMan
    J'ai enlevé le 'name', et je l'ai mis sur le onsubmit de mon formulaire mais ca continue a tout envoyer !!
    Fais plutôt un copié/collé de ta version actuelle, parce que là ...
    Le onsubmit du <form> est la seule manière (standard) de faire le contrôle sur le client ...

    Pour info : il faut toujours la refaire sur le serveur (au cas où JS soit désactivé) ....

  12. #12
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut
    Voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <script language="javascript">
     
    function formOK(){
     
       if(document.myfom.totalmonday.value>1){
       alert('The workload for monday is too high ');
       return false;
       }
     if(document.myfom.totaltuesday.value>1){
       alert('The workload for tuesday is too high ');
       return false;
       }
       if(document.myfom.totalwednesday.value>1){
       alert('The workload for wednesday is too high ');
       return false;
       }
       if(document.myfom.totalthursday.value>1){
       alert('The workload for thursday is too high ');
       return false;
       }
       if(document.myfom.totalfriday.value>1){
       alert('The workload for friday is too high ');
       return false;
       }
       return true;
    }
    </script>
    Voici le debut de mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="myform" method="post" action="savload.php" onsubmit="return formOK();">
    Et enfin mon bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='submit' value='Save' >
    Je ne comprenais pas bien mais la...

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Effectivement, sur le principe, c'est OK.
    Sous réserve que les identifiants (des name et non des id) soient corrects

    Juste la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['myfom'].elements['totalmonday'].value
    qui pose moins de pb de compatibilité ...

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Ah si : pb de type de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (parseInt(document.forms['myfom'].elements['totalmonday'].value)>1)
    ...
    Les value sont de type caractère, par défaut, et tu utilises un opérateur de comparaison numérique

  15. #15
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut
    Non désolé...
    J'ai tout essayé, avec le onsubmit, le onClick...
    Ca ne marche toujours pas... Je ne comprends pas.

  16. #16
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par ChrisMan
    Ca ne marche toujours pas... Je ne comprends pas.
    Heu ... ben moi je comprends plus, là
    Tu n'aurais pas "cassé" les parties qui marchaient en essayant de corriger (comme tu reparles du onclick, ça m'inquiète )

    Fais voir tout le code actuel ...

    Ca doit marcher

  17. #17
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    J'y connais pas grand chose en Javascript mais le nom de ton formulaire est : myform

    Et dans ton javascript tu tests des document.myfom....

  18. #18
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut
    Merci beaucoup...
    Je crois que j'etais fatigué hier soir... En effet ca marche, merci a vous 2 !!

  19. #19
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par debie1108
    J'y connais pas grand chose en Javascript mais le nom de ton formulaire est : myform

    Et dans ton javascript tu tests des document.myfom....
    Joli !

  20. #20
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut
    Tout marche niquel sous Firefox en fait, mais sous IE, meme sous Opera mon javascript ne fonctionne pas !
    Est ce qu'il y a une raison valable a part le fait que c'est de la m****e ?
    Faut il que je remontre mon code ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Controle de formulaire sur l'envoi
    Par navis84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/08/2005, 17h23
  2. control de formulaire qui marche avec IE et non mozilla
    Par epeichette dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/03/2005, 16h47
  3. controle de formulaire
    Par Anonymous dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/10/2004, 09h21
  4. Controle de formulaire valid XHTML 1.1
    Par StagiaireEnGalère dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/10/2004, 22h15
  5. [jsp]controles des formulaires servlet ou javascript ?
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 05/07/2004, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo