Pb : Redonner le focus à un champ texte suite à une erreur.

Résolu
roymatthieu Messages postés 112 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 3 février 2011 - 26 oct. 2008 à 17:54
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 29 oct. 2008 à 09:15
Bonjour,

Je cherche à valider le contenu de mes champs textes... (ps, suis débutant en javascript)

L'objectif est d'effectuer une vérification sur la chaine de caractère contenue dans ce champ texte

Dans le cas ou la vérification n'est pas conforme, je souhaite afficher une alerte et redonner le focus à ce champ.

Voici le code. (pour tester la fonction je n'affiche pas le traitement)

<script language="javascript" type="text/javascript">
function verif_champ(champ)
        {   
            ...traitement
.. si faux :
alert('Message');
document.GetElementById(champ).focus();
        }
</script>      

Voici mon champ texte :

Bien entendu, si je vous contacte, c'est que ca ne fonctionne pas...

Merci à vous pour votre aide précieuse.

9 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 oct. 2008 à 20:05
Bonjour,
J'ai rencontré, en son temps, ce problème
et je l'ai résolu de la façon suivante
Création d'une fonction
//---------------------------------
function
Obj_SetFocus( obj_, flag_){
  var Obj = null;
  if(
typeof(obj_)=='object')
    Obj = obj_;
  else
    Obj =
document.getElementById( obj_);
  if( Obj && flag_)

    Obj.focus();
  else
    setTimeout( "Obj_SetFocus('" +obj_ +"',
1)", 100);
}
Appel de la fonction comme suit
//-------------------------
function
verif_champ( champ){
  alert( champ.id);
  Obj_SetFocus( champ.id);

}

;O)
3
roymatthieu Messages postés 112 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 3 février 2011 1
27 oct. 2008 à 21:04
Merci beaucoup... Ca fonctionne sur Ie 7 et sur FF 3.0 (pas essayé le reste.)

Tu viens de rendre un homme heureux... (t'imagine même pas).

La base étant là...

Je vais tansmettre d'autre variables à la fonction verif_champ() afin d'avoir une fonction complète.

Dans la mesure du possible, une fois le script final terminé, j'en ferais profiter la communauté.

Merci de ta contibution...
3
roymatthieu Messages postés 112 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 3 février 2011 1
26 oct. 2008 à 17:56
Sorry

Voici mon champ texte :
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
26 oct. 2008 à 18:21
bonjour,

si tu appelles avec this, dans la fonction, il ne faut pas utiliser document.getElementById
    ou je ne sais quoi.

function verif_champ(champ)
{ contrôle de champ.value
  si errreur : champ.focus();
}

verif_champ(this);

Cordialement

          Bul [mon Site] [M'écrire]         
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
roymatthieu Messages postés 112 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 3 février 2011 1
26 oct. 2008 à 18:36
Merci de ton aide mais cela ne fonctionne toujours pas...

L'alerte s'affiche mais le le focus n'est pas donné au champ.

Par contre si j'utilise onmouseover à la place de onblur -> il n'y a pas de problème.

Je ne comprends pas pourquoi ca ne fonctionne pas avec onblur ni onchange.

...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 oct. 2008 à 08:26
ah.. crotte de biques....
je n'ai testé qu'avec IE avec qui ça marche.
faut regarder ce qu'il manque pour faire
fonctionner avec FF.
si je trouve...
@+
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 oct. 2008 à 08:01
ben zut alors...
je n'avais jamais été confronté à ce souci....
@petoleteam : curieux d'avoir à agir ainsi, non ?
         Bul [mon Site] [M'écrire]         
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
28 oct. 2008 à 19:16
Bonjour,
J'ai rencontré ce problème lors du
développement de ma source sur RECHERCHE et COLORISATION
Une
explication...HUM!!!
un petit bout de code pour tester sous IExplorer et FireFox




var k =0;
//------------------------

function Write_Info( txt_){
  var Obj =
document.getElementById( 'D_INFO');
  var szTmp = Obj.innerHTML;

  Obj.innerHTML = ++k +' ' +txt_ +'
' +szTmp;
}
//------------------
function Fct_0( id_){

  Write_Info( id_);
  alert( id_);
}
//------------------
function Fct_1( id_){

  Write_Info( id_);
  alert( id_);
}














Le test...
1/ click sur INPUT_1
2/ click sur INPUT_2

Observations...
Sous FireFox sans relâcher la souris lorsque l'on clique
sur l'INPUT_0 il apparaît des choses différentes que si le click est relaché, le
onclick n'est effectif qu'au relâché de la souris.

Sous IExplorer le onclick n'apparaît même pas...

IExplorer possède un objet événement
unique, event, qui est commun à tous les
objets de la page alors que FireFox en crée un
par objet quand il se déclenche.

C'est donc un problème de gestion des
événements, hiérarchisation, qui se fait différemment, la propagation est stoppée sous IExplorer mais pas sous FireFox.

Il y a surement moyen de les rendre
identique en réaction en gérant la propagation ou autre, mais bon...

C'est pourquoi la solution de mettre un setTimeout avec un flag rétabli l'équilibre...

Voila ce que je peux en dire, je n'ai pas poussé plus loin mes
investigations, la fonction marchant bien pour ce que j'avais à en faire.

Un jour peut être pour le FUN!
;O)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 oct. 2008 à 09:15
>>IExplorer possède un objet événement unique, event, qui est commun
>>à tous les objets de la page alors que FireFox en crée un par objet
>>quand il se déclenche.
>>C'est donc un problème de gestion des événements, hiérarchisation,
>>qui se fait différemment,
merci pour l'explication.
          Bul [mon Site] [M'écrire]         
0
Rejoignez-nous