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 :

onKeypress & IE6


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 10
    Par défaut onKeypress & IE6
    Bonjour,

    En cherchant sur le forum et sur le net j'ai trouvé un petit code qui permet d'interdire la saisie de certains caractères.
    Dans mon code je veux interdire tous les caracteres sauf Y,y,N,n,backspace
    Le problème est que sous FF ça fonctionne, mais pas sous IE6 (je n'ai pas encore testé sous IE7)
    Pouvez-vous m'apporter un peu d'aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input size='1' type='text' maxlength='1' name='yes_no_choise' 
    onKeypress='if(event.keyCode != 89 && event.keyCode != 121 &&  
    event.keyCode != 8 &&  event.keyCode != 0 &&  
    event.keyCode != 78 &&  event.keyCode != 110) event.returnValue = false; 
    if(event.which != 89 && event.which != 121 &&  event.which != 78  
    &&  event.which != 0 &&  event.which != 8  
    &&  event.which != 110) return false;' />

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 92
    Par défaut
    Salut funboy,

    Ajoute un id à ton input et supprime l'attribut onkeypress:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input id='yes_no_choise' size='1' type='text' maxlength='1' name='yes_no_choise' />
    En Javascript, associe le keypress à une fonction de validation compatible FF/IE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    document.getElementById('yes_no_choise').onkeypress = function(event) {
      if (!event) {
        event = window.event;
      }
      var key_code = event.which?event.which:event.keyCode;
      if (key_code == 89 || key_code == 121 || etc...) {
        return true;
      }
      return false;
    }
    Et normalement.. ça roule !

  3. #3
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 10
    Par défaut
    hello
    Merci pour ta reponse.
    elle est preque parfaite, sauf que le controle s'active après que j'ai appuyé sur une touche.
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script language="JavaScript">
    function test() {
    document.getElementById('yes_no_choise').onkeypress = function(event) {
      if (!event) {
        event = window.event;
      }
      var key_code = event.which?event.which:event.keyCode;
      if (key_code == 89 || key_code == 121) {
        return true;
      }
      return false;
    }
    }
    </script>
    <input id='yes_no_choise' size='100' type='text' maxlength='100' name='yes_no_choise' onKeypress="test();"/>

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 92
    Par défaut
    Remplace onkeypress par onkeyup.

  5. #5
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 10
    Par défaut
    Même probleme, je peux taper un caractere et ensuite le js intervient

  6. #6
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Salut,

    Quand veux-tu que le script agisse exactement?

  7. #7
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 10
    Par défaut
    Je voudrais que dans mon <input> l'utilisateur ne puisse saisir que Y/y ou N/n

    (dans le code exemple il manque les codes ASCII de N et n)

  8. #8
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Il faut utiliser de concert :

    onkeyup
    onkeydown
    onfocus
    onblur

    et onload du body.

  9. #9
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    En général, je n'aime pas le genre de réponse que je vais faire.

    Mais pourquoi ne pas utiliser les boutons radio, si tu veux un simple oui/non?

  10. #10
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 10
    Par défaut
    Merci pour vos reponse.
    Effectivement la solution de radio button semble plus simple

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

Discussions similaires

  1. [javascript][IE6] changement automatique taille du texte
    Par MatMeuh dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/12/2008, 12h05
  2. [Windows 2000 server] Téléchargement FTP impossible sous IE6
    Par o151181 dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 24/11/2004, 18h00
  3. URGENT : Request.Form ne marche pas sous IE6
    Par Laurent Outan dans le forum ASP
    Réponses: 9
    Dernier message: 16/07/2004, 15h25

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