Utiliser onblur, sans appel [Résolu]

Messages postés
70
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
9 juillet 2011
- - Dernière réponse : cs_moumouf
Messages postés
70
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
9 juillet 2011
- 22 juil. 2010 à 12:23
Bonjour,

Je développe un formulaire de saisie qui pour chaque champs possède une balise onblur="verif(this, this.form)"

Y a t-il un moyen (via un window.onload="verif(formName)" par ex) d'exécuter cette fonction de vérification sur chaque champs (pour un formulaire donnée) sans avoir a faire l'appel depuis chaque balise input comme c'est le cas actuellement.
Merci de bien vouloir m'indiquer la marche à suivre :)
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
11
3
Merci
pour boucler tous les champs il suffit de faire un appel de ce type...
//-- recup objet FORM
var O_Form = document.getElementById( id_form); // par exemple

pour récupérer les éléments...
//-- 1st syntaxe
var T_Input = O_Form.getElementsByTagName('INPUT');
//-- 2nd syntaxe, plus complete
var T_Input = O_Form.elements;
T_Input contient une nodeList des éléments demandés

et pour l'affectation une simple boucle
for( var i =0 , nb = T_Input.length; i < nb; i++){
  var O_Input = T_Input[i]; // recup de l'objet
  //-- si INPUT texte, ceci est un exemple
  if( O_Input.type == "text"){
    //-- affectation de la fonction de verif
    O_Input.onblur = function(){
      Verif( this, O_Form);
    }
  }
}

concernant la fonction Verif(), c'est une autre histoire...
tout dépend du nombre de champs à tester, de l'opportunité de tester individuellement sur chaque onblur...etc...

à toi de voir !
;O)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

Commenter la réponse de PetoleTeam
Messages postés
70
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
9 juillet 2011
3
Merci
Pour clore le sujet voici le code mis en place qui fonctionne :


window.onload = function() {
formatUsrFldFrm();
}

function formatUsrFldFrm() {
var O_Form = document.getElementById('usrFrm');
var T_Input = O_Form.elements;

for( var i =0 , nb = T_Input.length; i < nb; i++){
  var O_Input = T_Input[i]; // recup de l'objet
    O_Input.onblur = function(){
      valFldUsrFrm( this, O_Form);
    }
}
}


Je n'ai pas limité aux types input car j'ai un champs date de naissance dont les éléments (jour mois année) sont décomposés en 3 listes déroulantes.

Encore merci pour le tuyau qui vas me faire gagner bien du temps !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_moumouf
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
11
0
Merci
ReBonjour,
Y a t-il un moyen (via un window.onload="verif(formName)" par ex)
c'est exactement cela !

- Récupération de l'objet FORM
- Parcours, ou récupération des éléments INPUT ou autre
- Affectation d'une fonction anonyme qui appelle la fonction voulue

voila pour le principe !

;O)
Commenter la réponse de PetoleTeam
Messages postés
70
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
9 juillet 2011
0
Merci
le soucis que j'ai concerne le parcours des champs, je ne vois pas bien comment m'y prendre :
1 - comment boucler sur les champs, et à quel moment ?
2 - comment lui dire d'effectuer l'appel sur la fonction lorsque on quitte le champs ?

window.onload = function() {
verif(??);
}


function verif(objFrm, obj) {
if(obj.name 'nom' && obj.value '') {
blabla...
}
else if(obj.name 'prenom' && obj.value '') {
blabla..
}
etc...
}
Commenter la réponse de cs_moumouf
Messages postés
70
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
9 juillet 2011
0
Merci
Wow ! génial !
tout est très clair :

O_Input.onblur = function(){
      Verif( this, O_Form);
    }



c'était avec ce genre de truc que j'avais du mal.

Un grand merci pour ton aide !
Commenter la réponse de cs_moumouf