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 :

Gestion d'un évènement type "onoverflow"


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 36
    Points : 32
    Points
    32
    Par défaut Gestion d'un évènement type "onoverflow"
    Bonjour,

    je cherche un moyen permettant de détecter le dépassement de la zone de saisie dans un textarea afin d'afficher un message indiquant cet état de fait.

    En gros si dans un textArea, le scroll horizontal venait à apparaitre, je souhaite pouvoir afficher une alert ("Zone d'édition dépassée").

    Ca doit bien exister, justement parce que le navigateur gère bien l'évènement et affiche le scroll, mais pas moyen de trouver plus d'info que ça.

    Toutes les idées et exemples sont les bienvenus.

    Merci A+

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    J'ai cherché et j'ai pas trouvé non plus :-) je pensait à l'événement onscroll
    qui permet de savoir quand on agit sur une barre de défilement, mais ça
    marche pas sur les textarea (en tout cas pas sur FF)

    Voici une idée pour contourner le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    window.onload = function() {
    	document.getElementById('ta').onkeypress = function() {
    		if(document.getElementById('ta').scrollLeft>0) {
    			alert('trop grand');
    		}
    	};
    }
     
    <textarea id='ta' wrap='off' cols='20' rows='10'></textarea>
    Mais sur mon Linux / FF il semblerait qu'il faille dépasser de deux caractères
    la zone de saisie pour qu'il détecte le scroll, c'est étrange, je te laisse
    essayer.

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 905
    Points : 14 822
    Points
    14 822
    Par défaut
    J'aurais plutôt fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function test(obj){
       if(obj.scrollLeft > 0) {
          alert('trop grand');
       }
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea id='ta' wrap='off' cols='20' rows='10' onkeyup="test(this)" onkeydown="test(this)"></textarea>

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    +1 Bisûnûrs, je pense que c'est plus prudent. Et ça corrige le petit problème
    que j'avais remarqué plus haut.

    Ce qui m'amène à modifier ma solution pour intégrer la tienne, tout en
    évitant d'avoir des attributs évènementiels dans le html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    window.onload = function() {
        var e = document.getElementById('ta');
        e.onkeyup = test;
        e.onkeydown = test;
    }
     
    function test(){  
      if(this.scrollLeft > 0) {  
        alert('trop grand'); 
      } 
    }
    Reste le problème si l'utilisateur colle du text dans le champ !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    Bravo et merci à vous 2. J'avais bien commencé à chercher du coté du scroll, mais sans plus d'idée que ça.

    Ca fonctionne parfaitement.

    Encore merci

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

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