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 :

Javascript et formulaires.


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut Javascript et formulaires.


    Voilà dans le cadre d'un projet donné par mon école, j'ai à réaliser un site en php dans lequel j'ai besoin que les utilisateurs renseignent un formulaire. J'ai donc modifié (très peu...) un js récupéré sur un site qui permet de vérifier les différents champs avant un submit.

    Cependant après avoir essayer d'insérer dans tous mes fichiers, ce js ne se lance toujours pas, je pense bien entendu que c'est une erreur de débutant mais je suis trop nul pour en trouver la source

    Si l'un d'entre vous pouvait me sortir de là avant que je ne passe par la fenêtre !

    Voilà le code source de la page de formulaire:

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <HTML><head><SCRIPT LANGUAGE="Javascript" SRC="./js/checkform.js"></SCRIPT></head><body><div style="width:500px"><form name="form1" enctype="multipart/form-data" action="traitement.php" method="post" onsubmit="checkrequired(this)">
     
    	<input name="class" type="hidden" value="site">
    	<input name="action" type="hidden" value="ajouter">
    	<input name="Id" type="hidden" value="0">
        <input name="rubrique" type="hidden" value=""> 
     
     
    	<input name="IdSite" type="hidden" value="0">
    	<div>Rattachement :</div>
    <input name="RattachementSite" type="text" value="">
    	<div>Libellé :</div>
     
    <input name="LibelleSite" type="text" value="">
    	<div>Adresse :</div>
    <input name="AdresseSite" type="text" value="">
    	<div>Téléphone :</div>
    <input name="requiredphone" type="text" value="">
    	<div>E mail :</div>
    <input name="requiredemail" type="text" value="">
    	<div>Représentant client :</div>
    <input name="RepresentantClient" type="text" value="">
     
    	<div>Société :</div>
    <input name="NomSociete" type="text" value="">
    	<div>Chef de site :</div>
    <input name="ChefSiteNom" type="text" value="">
    	<div>Téléphone :</div>
    <input name="phone" type="text" value="">
    	<div>E mail :</div>
    <input name="ChefSiteEmail" type="text" value="">
    	<input name="TempsMaintenanceSite" type="hidden" value="">
     
    <div align="center"><input type="submit" name="go" value="Envoyer"></div>
    <div align="center"></div>
    <div align="center">
    <br><input type="reset" name="reset" value="Reset">
    </div>
    <p>(*) Champs obligatoires</p>
    <a href="site.php?class=site">Retour</a>
    </form></div></body>
    </html>
    Suivi de près par le code du JS:

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    function checkrequired(theForm){
    var pass=true
        if (document.image){
            for (i=0;i<theForm.length;i++){
                var tempobj=theForm.elements[i]
                if (tempobj.name.substring(0,8)=="required"){
                   if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==-1)){
                    pass=false
                    error("Un des champs requis n'a pas été dument rempli\n");
                    break
                  }
                }
                if (tempobj.name.substring(0,5)=="email"){
                    if(-1==verifemail(tempobj.value)){
                        pass=false
                        error("Erreur lors de la saisie de l'adresse email\n");
                        break
                        }
                }
                if (tempobj.name.substring(0,5)=="phone"){
                    if(-1==checkPhone(tempobj.value)){
                        pass=false
                        error("Erreur lors de la saisie de l'adresse email\n");
                        break
                        }
                }
            }
        }
        if (!pass){
            alert("One or more of the required elements are not completed. Please complete them, then submit again!")
            return false
        }
        else
            return true
    }
     
     
     
    //FORMULAIRE DE TEST D ADRESSE EMAIL
     
    function verifemail(str){
    var error=0
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    if (!(filter.test(str))){
    error=-1
    }
    return error
    }
     
     
    //FORMULAIRE DE TEST NUMERO DE TELEPHONE
     
    function checkPhone(num){
    var stripped = num.replace(/[\(\)\.\-\ ]/g, '');
    var error =0
      if (isNaN(parseInt(stripped))) {
       error = -1
      }
      if (!(stripped.length == 10)) {
    	error = -1
      }
    return error
    }

    Il y a probablement moultes erreurs alors faites vous plaisir pendez moi sur la place publique mais s'îl vous plait, aidez moi

  2. #2
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    eh rien que pour commencer ...

    en paramètre de la focntion tu passes this ...

    j'aurasi mis this.form ...

    puis tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function checkrequired(theForm){
    var pass=true
        if (document.image){
            for (i=0;i<theForm.length;i++){
    le form n'a pas de length ...
    éventuillement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     theform.elements.length
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Merci de ta réponse, j'ai bien suivi tes conseils cependant ce que je n'arrive pas à comprendre c'est de savoir si le script est bien exécuté (Dans ce cas pourquoi le code qu'il contient ne me revoi aucune erreur ni résultat...) ou bien si comme j'en ai l'impression, le js n'est jamais exécuté.

    Voilà voilà !

  4. #4
    Expert éminent

    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
    Par défaut
    Citation Envoyé par A_l_aide
    ce que je n'arrive pas à comprendre c'est de savoir si le script est bien exécuté
    Commence par Tu sauras si il est exécuté ou pas ...

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Merci pour le conseil, en effet le script est bien exécuté, je pense que je vais réussir à me débrouiller tout seul à partir de maintenant..

    L'entrée en scène du démineur est imminente

  6. #6
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    autre detail qui a son importance,
    en principe une verif de formulaire se fait par une focntion qui retourne true ou false et est appelée dasn le onsubmit du form comem ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return checkrequired(this);"
    ce qui fait que si la verif est ok, la fonction retourne true et le formulaire est soumis;
    et si le verif n'est pas bonne la fonction retourne false et le formulaire n'est pas soumis ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Oui oui, en effet détail d'importance qui avait été levé lors des tests!

    J'ai trouvé d'où vient à priori l'erreur qui fait que le js n'est pas parcouru dans son intégralité:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (i=0;i<theForm.length;i++){
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (i=0;i<theForm.elements.length;i++){
    A priori le paramètre d'arrêt de la boucle est nul.

    Je me permet donc de vous demander quelle est la commande permettant de lister l'ensemble des champs d'un formulaire

    Et j'en profite pour vous remercier de votre aide jusque là !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Ajax, formulaire, div et select
    Par n8ken dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/09/2006, 10h51
  2. javascript et formulaire
    Par djedje37et28 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/08/2006, 14h53
  3. [Javascript] Controle Formulaire
    Par Cch95 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/06/2006, 14h32
  4. [Javascript] Validation formulaire avec ENTREE
    Par titalex dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/06/2006, 16h37
  5. javascript et formulaire
    Par jfjava2002 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 11h16

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