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 :

Methode focus compatibilite mozilla


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 21
    Points
    21
    Par défaut Methode focus compatibilite mozilla
    Bonjour à tous,

    J'ai creer une fonction qui empeche de ne pas remplir un champs à deux conditions
    en gardant le focus sur le champs si celui ce n'est pas rempli

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    while($doses=mysql_fetch_array($optionop)) {
    		$f=$doses['id'];
     
    		echo "function obliger".$f."(prx) {";
     
    echo "if((document.getElementById('t_prix1_".$f."').value != \"\") 
    	&&
    		((document.getElementById('t_prix' + prx + '_".$f."').value == \"\"))) { 
    alert('erreur: Veuillez rentrer le tarif ' + prx + '.'); 
    		  document.getElementById('t_prix' + prx + '_".$f."').focus();
     
    } } ";
    Aucun probleme sous IE mais sur mozilla le focus ne se declenche pas
    la fonction marche à priori parce que l'alert marche meme sous mozilla.
    En revanche, sous mozilla, la fonction ne n'impose pas le focus.

    Merci de votre aide

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut Rien ne sert de courir, il faut partir à point
    Le code HTML généré donne quoi ?
    Vous avez des id sur vos champs ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par vermine Voir le message
    Le code HTML généré donne quoi ?
    Vous avez des id sur vos champs ?
    Le voici une des fonctions en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     function obliger24(prx) {if((document.getElementById('t_prix1_24').value != "") 
    	&&
    		((document.getElementById('t_prix' + prx + '_24').value == ""))) { 
    alert('erreur: Veuillez rentrer le tarif ' + prx + '.'); 
    document.getElementById('t_prix' + prx + '_24').focus(); } }


    le parametre est pris ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' id='t_prix3_24' name="t_id_3_24" size='3.8' onblur=obliger24('3')>
    Je suis presque sur qu'il y a une ambiguite sur lid du champs.
    Comment pouis je preciser ma requete
    PS En faisant une recherche l'id existe qu'une fois

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Vous devez mettre des quottes ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onblur="obliger24('3');"
    Sinon les fonctions se lancent lors de la création de la page.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par vermine Voir le message
    Vous devez mettre des quottes ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onblur="obliger24('3');"
    Sinon les fonctions se lancent lors de la création de la page.
    C'est possible mais ca ne résoud pas mon souci...
    Merci quand meme

  6. #6
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Pourrions-nous avoir un peu plus de code généré, s'il vous plait ?

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    tu as essayé d'appeler le focus() dans un settimeout() ?

    EDIT : au passage, un focus() appelé sur onblur peut être gênant pour l'utilisateur (dead lock potentiel). Tu ne pourrais pas faire la vérif sur onsubmit, plutôt ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    tu as essayé d'appeler le focus() dans un settimeout() ?

    EDIT : au passage, un focus() appelé sur onblur peut être gênant pour l'utilisateur (dead lock potentiel). Tu ne pourrais pas faire la vérif sur onsubmit, plutôt ?

    A+
    J'ai essaye sur un onmouseover
    et ca à l'ai de fonctionner.
    Mais si je veux, justement empecher que la case perde le focus quel evenement me permetrrait de le faire

    Mais ca fonctionne avec un settimeout dans tous les cas d'evenements
    Si vous pouvez justement m'expliquer pourquoi y a plus de deadlock potentielle dans ce cas la merci

    Merci de vos reponses.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Robert222 Voir le message
    Si vous pouvez justement m'expliquer pourquoi y a plus de deadlock potentielle dans ce cas la merci
    Il y a toujours le problème du deadlock potentiel ...
    Ma proposition visait juste à faire fonctionner ton traitement sous FF.

    Pour illustrer le cas de deadlock, ça serait par exemple si l'utilisateur, pour remplir le champ obligatoire devait retourner sur une autre page de l'appli (où se trouverait l'info demandée). Tel que tu l'as fait actuellement, il sera obliger de fermer le nav et de relancer ton appli (car la seule façon de changer de page et de donner une information ... qu'il n'a pas).
    Par contre le onmouseover semble particulièrement inadapté : il se déclenchera même en cas de survol involontaire ...
    Avec onchange, tu pourrais faire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' id='t_prix3_24' name="t_id_3_24" size='3.8' onchange="return obliger24('3');">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function obliger24(prx) {if((document.getElementById('t_prix1_24').value != "") 
    	&&
    		((document.getElementById('t_prix' + prx + '_24').value == ""))) { 
    alert('erreur: Veuillez rentrer le tarif ' + prx + '.');
    return false; }
    else return true; }
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] Compatibilité Mozilla Firefox
    Par tim1789 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2008, 18h12
  2. Compatibilité Mozilla - IE redirection/email (double actions)
    Par neo62matrix dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/05/2007, 15h23
  3. Erreur de compatibilité Mozilla
    Par mickado dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/03/2007, 19h39
  4. [W3C] Aires cliquables : compatibilité Mozilla
    Par Nicomart dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/09/2005, 18h18
  5. [HTML] Probléme compatibilité Mozilla
    Par hedgehog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/06/2005, 09h30

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