Recherche de variable

Recherche de variable - HTML/CSS - Programmation

Marsh Posté le 01-09-2005 à 21:26:45    

Salut à vous!
Je cherche une variable me permetant de verfier plusieur champs d'un formulaire (pour cette page par exemple).
En gros une fonction qui m'eviterais de me taper 36 "if"
 
Merci d'avance  :jap:

Reply

Marsh Posté le 01-09-2005 à 21:26:45   

Reply

Marsh Posté le 02-09-2005 à 05:01:44    

Fais une boucle !
 

Code :
  1. var lesInputs = document.getElementsByTagName("input" );
  2. for (var i=0; i<lesInputs.length; i++) {
  3.    if(lesInputs[i]).value == "" ) {
  4.      alert("Remplis tous les champs tête de pioche" );
  5.    }
  6. }


 
Code non testé, mais tu vois l'idée...

Reply

Marsh Posté le 02-09-2005 à 09:13:52    

Peut-être serait-il bon d'en faire une fonction et d'ajouter un return dans le for sinon tu vas te retrouver avec autant que boites de message que de champs non remplis.
 
 

Code :
  1. function check_form() {
  2.   var lesInputs = document.getElementsByTagName("input" );
  3.   for (var i=0; i<lesInputs.length; i++) {
  4.      if(lesInputs[i]).value == "" ) {
  5.        alert("Remplis tous les champs tête de pioche" );
  6.        return false;
  7.      }
  8.   }
  9.   return true;
  10. }


 
Après tu n'as qu'à appeler ta fonction lors de la validation du formulaire :  
 

Code :
  1. <form action="..." method="..." onsubmit="return(check_form());" >


Message édité par j_lecruel le 02-09-2005 à 09:14:11

---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 02-09-2005 à 17:04:28    

Je debut et je n'arrive pas à apliquer vos conseils dans mon formulaire. Un petit coup de pouce siouplé  :jap:  


Message édité par drake- le 06-09-2005 à 18:04:03
Reply

Marsh Posté le 06-09-2005 à 18:05:22    

up

Reply

Marsh Posté le 06-09-2005 à 18:44:31    

Envoie ton code...


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 06-09-2005 à 21:22:29    

c'est pour cette page http://mgteam.free.fr/MLT/Shaka/Inscription.html
Merci de ton aide :jap:

Reply

Marsh Posté le 06-09-2005 à 21:49:09    


  • Les tableaux sont inutiles (avec des labels, on peut taper son texte en cliquant sur le titre du champ, s'mieux) surtout pour une page aussi simple
  • Ajoute un élément permettant de savoir que le champ est obligatoire, je verrais bien un 'class="required"' sur chaque "input" obligatoire.
  • Ce qui permet de faire un JS tout con, du type

function checkRequiredInputs() {
    var validForm = true;
    var inputs = document.getElementsByTagName('INPUT');
    for(var i=inputs.length-1; i>=0; --i) {
        inputs[i].style.border = "";
        if(inputs[i].className.indexOf("required" ) != -1 && inputs[i].value=="" ) {
            inputs[i].style.border="2px solid red";
            validForm = false;
        }
    }
    return validForm;
}


testé sous Firefox en vitesse, fonctionne :o
 
Cette fonction:

  • Encadre en rouge les champs obligatoires non remplis (normalement [:pingouino])
  • retourne "true" si tous les champs obligatoire sont remplis, "false" dans les autres cas


Sachant que ce genre de trucs sert uniquement à améliorer la vie du client:

  • Il ne faut pas que ça sorte une popup ou autre truc à la con, ça lourde
  • Garde en mémoire que ce n'est pas une vérification 'réelle': c'est très facile de la désactiver ou d'envoyer des données autrement => tu DOIS effectuer une validation complète côté serveur.


Pour finir, charge à toi de l'améliorer, tu peux par exemple:

  • utiliser des classes pour manipuler les styles au lieu des styles inline, c'est plus propre
  • enregistrer les noms des champs invalides pour en faire la liste
  • gérer les champs non textuels (selects par exemple)


edit: erreur de syntaxe
 
re-edit: Opera ne supporte pas "style.borderColor", et IE merde lamentablement mais je sais pas pourquoi
re-re-edit: la remise à 0 des bordures (inputs[i].style.border="" ) est comprise par MSIE comme une demande de supprimer les bordures [:sisicaivrai]
 
Donc faut se démerder pour extraire et conserver quelque part la bordure par défaut, pour pouvoir la remettre :o
Faut passer par currentStyle.border pour MSIE et getComputedStyle().border pour le reste, sauf Safari qui pige aucun des deux et peut aller se faire foutre [:pingouino]


Message édité par masklinn le 06-09-2005 à 22:11:38

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 06-09-2005 à 23:16:13    

j'ai testé ta fonction , mais j'ai du me gouré quelque part...ca na pas l'effet esconté :'( ( à cause de IE?)
 
http://mgteam.free.fr/MLT/Shaka/Co [...] ption.html


Message édité par drake- le 06-09-2005 à 23:24:53
Reply

Marsh Posté le 06-09-2005 à 23:33:08    

Citation :

sauf Safari qui pige aucun des deux et peut aller se faire foutre [:pingouino]

 
 
Masklinn en force :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-09-2005 à 23:33:08   

Reply

Marsh Posté le 06-09-2005 à 23:38:00    

drake- a écrit :

j'ai testé ta fonction , mais j'ai du me gouré quelque part...ca na pas l'effet esconté :'( ( à cause de IE?)
 
http://mgteam.free.fr/MLT/Shaka/Co [...] ption.html


Citation :

<INPUT TYPE="text" NAME="pseudo" SIZE="16" 'class="required"'>


WTF [:pingouino]
 
Et c'est pas magique une fonction javascript hein, faut l'appeler à un moment ou à un autre, et en faire quelque chose [:mr mala]


Message édité par masklinn le 06-09-2005 à 23:38:51

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed