Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pb syntaxe formulaire

Sujet résolu
    4 août 2009 à 18:38:40

    Bonsoir, je viens de créer un formulaire de contact qui marche très bien, le seul souci c'est que je dois avoir une erreur dans mon code. En effet, j'ai plusieurs test pour vérifier que les champs obligatoires soient remplis, le souci c'est que le premier test( sur le nom dans le code javascript) marche comme il faut mais que les autres ne se font pas ( au click sur le bouton envoyer, si tout les champs obligatoires ne sont pas remplis, le formulaire est quand même validé.
    Voici mon code en javascript et celui en html (afin de pouvoir comprendre la structure):
    Et mon code en html<html><head><title></title><script language="JavaScript">function verifSelection() {if (document.mail_form.champ1.value == "Nom") {
    alert("Veuillez saisir votre nom, svp !")
    return false
    } if (document.mail_form.champ3.value == "Tel") {
    alert("Le numéro de téléphone est indispensable afin que nous puissions vous contacter !")
    return false
    } if (document.mail_form.champ6.value == "") {
    alert(" Veuillez saisir votre adresse, svp !")
    return false
    } if (document.mail_form.champ7.value == "") {
    alert("Veuillez renseigner votre ville, svp !")
    return false
    } if (document.mail_form.champ8.value == "") {
    alert("Veuillez nous indiquer votre C.P. svp !")
    return false
    } if (document.mail_form.champ9.value == "") {
    alert("Veuillez inscrire l\'inititulé du message dans la zone prévue à cet effet !")
    return false
    } if (document.mail_form.zone_email.value == "") {
    alert("Veuillez saisir votre adresse e-mail, svp !")
    return false
    }
    
    invalidChars = " /:,;'"
    
    for (i=0; i<invalidChars.length; i++) {	// does it contain any invalid characters?
    badChar = invalidChars.charAt(i)
    
    if (document.mail_form.zone_email.value.indexOf(badChar,0) > -1) {
    alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
    document.mail_form.zone_email.focus()
    return false
    }
    }
    
    atPos = document.mail_form.zone_email.value.indexOf("@",1)			// there must be one "@" symbol
    if (atPos == -1) {
    alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
    document.mail_form.zone_email.focus()
    return false
    }
    
    if (document.mail_form.zone_email.value.indexOf("@",atPos+1) != -1) {	// and only one "@" symbol
    alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
    document.mail_form.zone_email.focus()
    return false
    }
    
    periodPos = document.mail_form.zone_email.value.indexOf(".",atPos)
    
    if (periodPos == -1) {					// and at least one "." after the "@"
    alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
    document.mail_form.zone_email.focus()
    return false
    }
    
    if (periodPos+3 > document.mail_form.zone_email.value.length)	{		// must be at least 2 characters after the 
    alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
    document.mail_form.zone_email.focus()
    return false
    }if (document.mail_form.zone_texte.value == "") {
    alert("Veuillez saisir un commentaire, svp !")
    return false
    } } // Fin de la fonction
    </script>
    
    <form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()" enctype="multipart/form-data">
    
    <table  >
    <tr>
     <td>
     
    	
    
      	<input  type="radio" name="titre" value="M."  /> M.
        <input type="radio" name="titre" value="Mme" /> Mme
    	<input type="radio" name="titre" value="Mlle" /> Mlle
    	
        
    	<p><input type="text" name="champ1"  value="Nom" class="formulaireContact" onfocus="if (this.value=='Nom') this.value=''"onblur="if (this.value=='') this.value='Nom'"/> 
    	<!--onfocus = clic dans la zone de saisie,       "onblur"(CONTRAIRE de onfocus)= clic hors de la zone.  -->
          
       
          <input type="text" name="champ2"  value="Prénom" class="formulaireContact" onfocus="if (this.value=='Prénom') this.value=''"onblur="if (this.value=='') this.value='Prénom'"/> </p>
        
    	<input type="text" name="champ3"  value="Tel"  onfocus="if (this.value=='Tel') this.value=''"onblur="if (this.value=='') this.value='Tel'"/> 
    	<input type="text" name="champ4"  value="Fax"  onfocus="if (this.value=='Fax') this.value=''"onblur="if (this.value=='') this.value='Fax'"/> </p>
     
    
     
    	<p><input type="text" name="champ5"  value="Portable"  onfocus="if (this.value=='Portable') this.value=''"onblur="if (this.value=='') this.value='Portable'"/> </p>
    	
     
    	
    	<p><input type="text" name="champ6"  value="E-mail"  onfocus="if (this.value=='E-mail') this.value=''"onblur="if (this.value=='') this.value='E-mail'"/> </p>
    	
    	<p><input type="text" name="champ7"  value="Adresse"  onfocus="if (this.value=='Adresse') this.value=''"onblur="if (this.value=='') this.value='Adresse'"/> 
    	<input type="text" name="champ8"  value="Ville"  onfocus="if (this.value=='Ville') this.value=''"onblur="if (this.value=='') this.value='Ville'"/> 
    	<input type="text" name="champ9"  value="Code Postal"  onfocus="if (this.value=='Code Postal') this.value=''"onblur="if (this.value=='') this.value='Code Postal'"/> </p>
    		<br />
    		<br />
    		
    
    	</td>	
    		
          <td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="9">
    	  
            <input name="nbre_zones_texte" type="hidden" value="1">
    		
    <input name="nbre_zone_email" type="hidden" value="1">
    
    <input name="nbre_zone_radio" type="hidden" value="3">
    
    <input name="titre_champ1" type="hidden" value="Nom"><input name="titre_champ2" type="hidden" value="Prénom"><input name="titre_champ3" type="hidden" value="Tel"><input name="titre_champ4" type="hidden" value="Fax"><input name="titre_champ5" type="hidden" value="Portable"><input name="titre_champ6" type="hidden" value="Adresse"><input name="titre_champ7" type="hidden" value="Ville"><input name="titre_champ8" type="hidden" value="Code Postal"><input name="titre_champ9" type="hidden" value="Intitulé du messge (maximum 30 mots)"><input name="titre_email" type="hidden" value="E-mail"><input name="titre_zone" type="hidden" value="Commentaires">
    <input name="titre_radio1" type="hidden" value="M."><input name="titre_radio2" type="hidden" value="Mme"><input name="titre_radio3" type="hidden" value="Mlle">
    </td>
          <td><div align="center">
    <input type="reset" name="Reset" value="Effacer">          
    <input type="submit" name="envoi" value="Envoyer">
            </div></td>
        </tr>
      </table>
      <div align="center"></div>
    </form></body></html>
    
    • Partager sur Facebook
    • Partager sur Twitter
      4 août 2009 à 18:56:36

      Euh, tu pourrais poster le formulaire également, qu'on vérifie si le problème ne vient pas de la ?

      De plus, il me semble que la forme " document.mail_form. ..." est dépréciée ! Il vaut mieux employer la forme document.getElementById("mail_form")...

      Je ne pense pas que le problème vienne de la, mais il est toujours temps de prendre de bonnes habitudes !

      Edit :Ah, tu viens d'editer j'avais pas vu dsl !
      • Partager sur Facebook
      • Partager sur Twitter
        4 août 2009 à 20:20:53

        Donne un exemple qui pose problème, parce que personnellement, si je mets le Nom mais pas le N°, j'ai aussi une alert() et tout semble fonctionner...
        • Partager sur Facebook
        • Partager sur Twitter
          5 août 2009 à 10:41:30

          Abraxasz, j'ai remplacé comme tu m'avais dit
          " document.mail_form. " par "document.getElementById("mail_form")"
          Et j'obtiens le message suivant:

          You don't have permission to access /SiteAutourDuBois/repertoire_prive/< on this server.

          Je pense donc que je vais garder ma vieille méthode.

          Je viens de trouver mon pb. (petite erreur de syntaxe) Merci pour vos réponses :)
          • Partager sur Facebook
          • Partager sur Twitter
            5 août 2009 à 11:43:21

            Pense à mettre ton sujet en résolu à l'aide du lien en bas de page ;)
            • Partager sur Facebook
            • Partager sur Twitter

            Pb syntaxe formulaire

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown