Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
850 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Javascript dans javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Javascript dans javascript

n°1323991
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 13-03-2006 à 09:56:44  profilanswer
 

Bonjour,
 
Je voudrais savoir s'il était possible de faire appel à une fonction javascript dans un javascript ? Je m'explique j'ai un formulaire qui fais appel à un script quand on l'envoie pour vérifier les données, genre si y'a bien un nom, prénom, mail,... Et je voudrais intégrer en plus une vérification de date (enfin 2 vérif en fait). Est-ce que c'est possible ? En gros dans l'exemple est-ce que je peux intégrer le "IsDate" dans le "fnVerifCarte" ?
 
J'ai essayé un truc comme ça pour l'instant mais j'ai dû me craquer quelquepart :
 

Code :
  1. function fnVerifCarte(){
  2. //Vérif nom
  3. if (document.form_carte.nom.value=="" ){
  4.  ...
  5.  }
  6. //Vérif mail
  7. var email = document.form_carte.email.value;
  8. if (document.form_carte.email.value=="" ){
  9.  ...
  10. }else if ((-1 == email.indexOf( '@' ,0)) || (-1 == email.indexOf('.',0 ))) {
  11.   ...
  12.  }
  13. //Vérif date début et date fin
  14. var datedeb = document.form_carte.datedeb.value;
  15. var datefin = document.form_carte.datefin.value;
  16. if (isdate(datedeb)){
  17.  ...
  18. }else {
  19.    ...
  20.  }
  21. if (isdate(datefin)){
  22.  ...
  23. }else {
  24.    ...
  25.  }
  26. function isDate(d) {
  27.     if (d == "" ) // si la variable est vide on retourne faux
  28.         return false;
  29.    
  30.     e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$" );
  31.    
  32.     if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
  33.         return false;
  34.     // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
  35.     j = parseInt(d.split("/" )[0], 10); // jour
  36.     m = parseInt(d.split("/" )[1], 10); // mois
  37.     a = parseInt(d.split("/" )[2], 10); // année
  38.     // Si l'année n'est composée que de 2 chiffres on complète automatiquement
  39.     if (a < 1000) {
  40.         if (a < 89)    a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
  41.         else a+=1900;
  42.     }
  43.     // Définition du dernier jour de février
  44.     // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
  45.     if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
  46.     else fev = 28;
  47.     // Nombre de jours pour chaque mois
  48.     nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
  49.     // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
  50.     return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
  51. }


 
 
Edit : je début en js donc j'ai sûrement fais quelques erreurs. Si vous avez des conseils, n'hésitez pas  :hello:


Message édité par WhiskyWalker le 13-03-2006 à 10:02:34
mood
Publicité
Posté le 13-03-2006 à 09:56:44  profilanswer
 

n°1323997
gatsu35
Blablaté par Harko
Posté le 13-03-2006 à 10:02:03  profilanswer
 

déjà dis nous ce qui ne marche pas dans ce que tu as fait et file aussi le code HTML de ta page

n°1324000
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 13-03-2006 à 10:06:10  profilanswer
 

gatsu35 a écrit :

déjà dis nous ce qui ne marche pas dans ce que tu as fait et file aussi le code HTML de ta page


 
J'ai dis que ça venait d'un formulaire, en gros la partie utilisée c'est ça :
 

Code :
  1. <form name="form_carte" method="post" action="envoi_a_la_carte.php" onSubmit="return fnVerifCarte()">
  2.                 <tr>
  3.                   <td class="description"><img src="imgs/puceV.gif" width="5" height="5"> D&eacute;part entre le :</td>
  4.                   <td class="description"><input type="text" name="datedeb" VALUE="" class="Input" MAXLENGTH="10" SIZE="4"> (jj/mm/aa)</td>
  5.                   <td class="description"><img src="imgs/puceV.gif" width="5" height="5"> Et le :</td>
  6.                   <td class="description"><input type="text" name="datefin" VALUE="" class="Input" MAXLENGTH="10" SIZE="4"> (jj/mm/aa)</td>
  7.                 </tr>
  8. </form>


 
J'ai beau mettre n'importe quelle date, il ne fait pas le test, pour les autres tests marchent nickel. J'ai dû oublier un ptit truc quelquepart mais je vois pas où  :heink:

n°1324011
anapajari
s/travail/glanding on hfr/gs;
Posté le 13-03-2006 à 10:18:31  profilanswer
 

le code que tu as écrit "devrait marcher" ...
N'as tu pas une erreur lors de l'execution (icone jaune en bas a gauche sur IE ou menu>outils>console javascript sous FF?
 
Quand tu dis "il ne fait pas le test", tu veux dire qu'il ne fait pas le test ( oui bon ça va ...) ou alors qu'a chaque fois il va dans le else?
 
Enfin fais juste ça:

Code :
  1. function isDate(d) {
  2.    alert('pouet');
  3.    if (d == "" ) // si la variable est vide on retourne faux
  4.    ...
  5. }


pour voir si ta fonction est bien appelée!

n°1324027
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 13-03-2006 à 11:05:43  profilanswer
 

anapajari a écrit :


pour voir si ta fonction est bien appelée!


 
J'ai pas d'alerte, donc la fonction a pas l'air d'être appelée  :(

n°1324033
anapajari
s/travail/glanding on hfr/gs;
Posté le 13-03-2006 à 11:16:51  profilanswer
 

donc tu as une erreur avant... que te dit la console ?
 
t'aurais pas un lien vers ta page ça irait plus vite!

n°1324081
Bidem
Posté le 13-03-2006 à 12:12:01  profilanswer
 

Citation :

J'ai pas d'alerte, donc la fonction a pas l'air d'être appelée  :(


Citation :

Code :
  1. function fnVerifCarte(){
  2.   //Vérif nom
  3.   if (document.form_carte.nom.value=="" ){
  4.     ...
  5.   }
  6.   //Vérif mail
  7.   var email = document.form_carte.email.value;
  8.   if (document.form_carte.email.value=="" ){
  9.     ...
  10.   }else if ((-1 == email.indexOf( '@' ,0)) || (-1 == email.indexOf('.',0 ))) {
  11.     ...
  12.   }
  13.   ...



 
Si isDate() n'est pas appellée, c'est que soit fnVerifCarte() n'est pas appellée, soit il y a un return pendant la vérif du nom ou du mail

n°1324192
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 13-03-2006 à 14:33:00  profilanswer
 

Bidem a écrit :

Si isDate() n'est pas appellée, c'est que soit fnVerifCarte() n'est pas appellée, soit il y a un return pendant la vérif du nom ou du mail


 
Exact. Voilà le code de cette partie :
 

Code :
  1. function fnVerifCarte(){
  2. //Vérif nom
  3. if (document.form_carte.nom.value=="" ){
  4.  alert("Renseignez votre nom !" );
  5.  document.form_carte.nom.focus();
  6.  return  false;
  7.  }
  8. //Vérif prénom
  9. if (document.form_carte.nom.value=="" ){
  10.  alert("Renseignez votre nom !" );
  11.  document.form_carte.nom.focus();
  12.  return  false;
  13.  }
  14. //Vérif mail
  15. var email = document.form_carte.email.value;
  16. if (document.form_carte.email.value=="" ){
  17.  alert("Renseignez votre E-mail !" );
  18.  document.form_carte.email.focus();
  19.  return  false;
  20. }else if ((-1 == email.indexOf( '@' ,0)) || (-1 == email.indexOf('.',0 ))) {
  21.   alert("L'adresse E-mail est incorrecte" );
  22.   return false;
  23.  }


 
y'a pas besoin de mettre le Return ?


Message édité par WhiskyWalker le 13-03-2006 à 14:33:37
n°1324201
anapajari
s/travail/glanding on hfr/gs;
Posté le 13-03-2006 à 14:36:07  profilanswer
 

Dès qu'il y a "return false", l'execution de la fonction s'arrête...
 
Donc ça dépend de ce que tu veux faire:
- T'arreter à la 1ere erreur ( auquel cas le return false est bien placé)
- Afficher toutes les erreurs en même temps ( auquel cas faut tout refaire)

n°1324224
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 13-03-2006 à 14:45:27  profilanswer
 

Ben il vérifie les champs du formulaire un par un et dès qu'il trouve une erreur il s'arrête donc pour moi c'est bon nan ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Javascript dans javascript

 

Sujets relatifs
bbcode insertion image (javascript et PHP)[Javascript] valeur d'un select sous IE
Javascript : Formulaire et aperçu.pb struts+javascript+xhtml
[résolu] appel webservices .net par ajax (javascript)[Javascript] Problème de rafraichissement d'image
[Javascript] Navigateurs, DOM et innerhtmlrattacher une classe Javascript à un élément HTML
Caracteres '<' et '>' dans un javascript contenu dans un XSLJavascript : incohérénces entre IE et Firefox
Plus de sujets relatifs à : Javascript dans javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR