IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

focus qui ne marche pas


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par d�faut focus qui ne marche pas
    Bonjour,

    A partir d'un formulaire php qui s'op�re sur une boucle :
    [...]
    $id=0;
    for ($i=1;$i<9;$i++)
    {

    echo "<td><input type='text' maxlength='2' size='2' id='".$id."' name='c".$i."_".$res['eleve_id']."' style='font-size:9px' onBlur=\"return controle($id);\" ></td>";
    $id++;
    }
    [...]

    je tente une fonction javascript qui v�rifie que la valeur entr�e dans le champ correspond � certaines valeurs obligatoires. Dans le cas contraire, je souhaite que la mauvaise valeur entr�e soit effac�e et que le champ soit s�lectionn� :

    <head>[...]
    <script language="javascript1.2">
    function controle(temp) {
    var obj=document.getElementById(temp);
    if (obj.value != "4" && obj.value != "8" && obj.value != "12" && obj.value != "16" && obj.value != "")
    {
    alert ("La valeur entr�e n'est pas acceptable.");
    document.getElementById(temp).select();
    obj.value="";
    document.getElementById(temp).focus();
    return false;
    }
    }
    </script></head>

    Or voil�, cela ne marche pas. La valeur incorrecte est effac�e mais apr�s le message d'alerte, le script passe � la case suivante. Si bien que par exemple, si un utilisateur entre une mauvaise valeur sans passer au champ suivant et appuie sur le bouton Enregistrer qui finit le formulaire, la mauvaise valeur passe ! Comme vous le voyez j'essaie � la fois le focus et le select. Je me doute que le focus n'a pas de sens, puisque le champ est alors vide, mais le select seul ne fonctionne pas non plus
    Qu'est-ce qui ne va pas dans mon javascript ?
    Merci de vos r�ponses

  2. #2
    Membre chevronn�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Par d�faut
    Salut,

    Personnelement, je ne vois pas ce qui cloche non plus, par contre un petit truc, � partir du moment o� tu as ton obj, tu peux l'utiliser partout et �viter de rappeler getElementById :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script language="javascript1.2">
    function controle(temp) {
      var obj=document.getElementById(temp);
      if (obj.value != "4" && obj.value != "8" && obj.value != "12" && obj.value != "16" && obj.value != "")
      {
        alert ("La valeur entr�e n'est pas acceptable.");
        obj.select();
        obj.value="";
        obj.focus();
        return false;
      }
    }
    </script>

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 5
    Par d�faut
    M�me remarque que beeboo pr�c�demment ..

    Si c'est bien la bonne valeur que tu souhaites contr�ler, cela devrait passer (bien qu'il y ait un petit d�calage entre la valeur $i et le $id utilis�)

    Petite remarque tu devrai aussi pouvoir la possibilit� passer directement l'objet en param�tre de la fonction js .. ce qui permet d'�viter d'avoir � la rechercher

    Si je ne dis pas trop de b�tises .. le code suivant devrait pouvoir passer ?! .. (mais je peux pas tester .. d�sol� .. )

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [...]
    $id=0;
    for ($i=1;$i<9;$i++)
    {
    echo "<td><input type='text' maxlength='2' size='2' name='c".$i."_".$res['eleve_id']."' style='font-size:9px' onBlur=\"return controle(this);\" ></td>";
    $id++;
    }
    [...]
    et

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <script language="javascript1.2">
    function controle(obj) {
      if (obj.value != "4" && obj.value != "8" && obj.value != "12" && obj.value != "16" && obj.value != "")
      {
        alert ("La valeur entrée n'est pas acceptable.");
        obj.select();
        obj.value="";
        obj.focus();
        return false;
      }
      else return true;
    }
    </script>

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par d�faut
    J'ai test� ton dernier code, Mediant, mais le focus ou le select ne se fixe toujours pas dans le champ qui contient une valeur non accept�e

  5. #5
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2006
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 532
    Par d�faut
    Fais une recherche sur le forum :
    focus setTimeout

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par d�faut
    En effet, �a marche avec setTimeout :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function controle(obj) {
      if (obj.value != "4" && obj.value != "8" && obj.value != "12" && obj.value != "16" && obj.value != "")
      {
        alert ("La valeur entrée n'est pas acceptable.");
        <!-- obj.select();
        obj.value="";
    	setTimeout(function() { obj.focus(); }, 10);
        <!-- obj.focus();
        return false;
      }
      else return true;
    }
    pour le formulaire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $id=0;
    for ($i=1;$i<9;$i++)
    			{
    			$name="c".$i."_".$res['eleve_id'];
    			echo "<td><input type='text' maxlength='2' size='2' id='".$id."' name='c".$i."_".$res['eleve_id']."' style='font-size:9px' onBlur=\"return controle(this);\" ></td>";
    			$id++;
    }
    dernier probl�me : si on entre une valeur refus�e, et qu'on clique sur le submit 'Enregistrer', j'obtiens le message d'alerte, mais le script passe quand m�me la valeur en POST. Faut-il alors que j'adjoigne � la balise <FORM> un OnSubmit pour balayer toutes les valeurs entr�es ?
    En tout cas, merci pour vos lumi�res. J'ignorais ce bug de Mozilla...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. M�thode getSize() qui ne marche pas
    Par mush_H dans le forum Agents de placement/Fen�tres
    R�ponses: 15
    Dernier message: 20/03/2005, 01h29
  2. [SWING] KeyListener qui ne marche pas
    Par kindool dans le forum AWT/Swing
    R�ponses: 2
    Dernier message: 10/01/2005, 19h04
  3. Iptables configuration qui ne marche pas....
    Par The_Nail dans le forum S�curit�
    R�ponses: 7
    Dernier message: 03/02/2004, 14h27
  4. R�ponses: 3
    Dernier message: 08/09/2003, 15h06
  5. R�ponses: 9
    Dernier message: 07/05/2003, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo