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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JavaScript] Masques de saisie sur formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JavaScript] Masques de saisie sur formulaire

n°2146309
brutax
Posté le 18-06-2012 à 19:43:01  profilanswer
 

Bonjour à tous !  :hello:  
 
Voilà mon souci : j'ai un formulaire, dont le nombre de champs peux varier, où les utilisateurs doivent saisir des valeurs numériques, potentiellement avec des virgules.
 
Ce que je cherche à faire : empêcher les utilisateurs de saisir autre chose que des nombres à virgules, et si possible que ce script puisse fonctionner avec n'importe quel formulaire de mon site.
 
J'ai pensé à plusieurs solutions :  
1)
à chaque touche pressée, je contrôle si c'est un chiffre ou un point ou une virgule. Si ce n'est pas le cas, rien n'est saisi (et éventuellement un msgbox).
problème : je sais pas trop comment faire ce script, ni même gérer le cas où le mec mets deux virgules.
 
2)
à chaque perte de focus d'un champ, j'appelle une fonction avec en paramètre l'id du champ. Cette fonction vérifie que la valeur de ce champ est bien un nombre et efface le contenu de la cellule + msgbox.
Problème : si je clique sur le submit, va-t-il soumettre le formulaire ou la msgbox va interrompre le chargement ?
 
3)
Le mec met n'importe quoi dans son formulaire, il valide. je teste en php dans la page suivant et si ce qu'il a saisi me va pas, je le renvoie à la page précédente.
Problème : ça m'oblige à faire un code pour chaque formulaire.
 
Des suggestions ?  :??:  
 
Il me faudrait aussi, si vous avez ça sous le coude, un script assez simple pour vérifier à la validation que les champs ne sont pas vide.
J'ai bien une idée du genre

Citation :


if(machin.value != "" AND truc.value != "" AND ...........)
{submit}
else{pas submit}


 
Mais ça pourrait faire un peu lourd, non ? Un if avec 15 conditions...  :pt1cable:  Vous en pensez quoi ?
 
Merci à tous, ++

mood
Publicité
Posté le 18-06-2012 à 19:43:01  profilanswer
 

n°2146328
GordonF_69
Posté le 18-06-2012 à 23:45:10  profilanswer
 

1) remplace les virgule par des points en PHP (si y'en a 2, supprime la 2e)
2) tout depend de ce que tu a mis dans "onsubmit"
tu peux faire tes controle javascript comme ca "onsubmit="return truc()"
 
fonction truc()
 retounera true ou false si tu veux que le forulaire soit envoyé.
 
3) Tu peux boucler pour gerer tt tes formulaire un peu comme ca:
 
for(i=0;i<docform.elements.length;i++)
 {
 if(docform[i].value=="" )
     {
     }
}
 
C'est moche, c'est recupere d'un vieux truc, mais ca marche :)

Message cité 1 fois
Message édité par GordonF_69 le 18-06-2012 à 23:46:10
n°2146361
brutax
Posté le 19-06-2012 à 09:31:25  profilanswer
 

OK, je vais tester tout ça dans la semaine.
 
Merci, ++

n°2147185
brutax
Posté le 26-06-2012 à 15:56:16  profilanswer
 

GordonF_69 a écrit :

1)  
for(i=0;i<docform.elements.length;i++)
 {
 if(docform[i].value=="" )
     {
     }
}
 
C'est moche, c'est recupere d'un vieux truc, mais ca marche :)


 
Super, ça marche. voici mon code plus en détails pour ne vérifier que les champs qui doivent l'être.
Je mets une class="nocheck" sur les éléments à ne pas vérifier. Puis, en javascript :
 

Citation :


function veriform()
 {
  var erreurs=0;
  for(i=0;i<document.forms["formulaire"].elements.length;i++)
  {
    if((isNaN(document.forms["formulaire"].elements[i].value) || document.forms["formulaire"].elements[i].value=="" ) && document.forms["formulaire"].elements[i].type=="text"  && document.forms["formulaire"].elements[i].className!="nocheck" )
   {
    document.forms["formulaire"].elements[i].style.backgroundColor='#FF5555';
    erreurs++;
    void window.stop();
   }
   else
   {
   document.forms["formulaire"].elements[i].style.backgroundColor='#FFFFFF';
   }
  }
  if(erreurs > 0)
  {
   alert("Certaines valeurs saisies ne sont pas valides." );
  }
  else
  {
   document.forms["formulaire"].submit() ;
  }
 }



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

  [JavaScript] Masques de saisie sur formulaire

 

Sujets relatifs
Problème d'accents formulaireRegExp Javascript
Javascript et WCFTraitement d'un formulaire
Appel fonction Javascript dans variable PHPTransformer en numéro de colonne une saisie utilisateur
Formulaire - Vérification Javascript & Envoi en PHPScript Javascript - Fond d'une partie du site
Insérer une page dans formulaire d'inscription 
Plus de sujets relatifs à : [JavaScript] Masques de saisie sur formulaire


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