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 :

Détecter le coller à la souris


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut Détecter le coller à la souris
    Bonjour,

    Vu mon incompétence en js, je fais encore appel à vous.
    J'ai récupéré du code qui permet de contrôler le nombre maxi de caractères saisis dans un input ou un textarea.
    Au fur et à mesure de la saisie, le texte "n caractères sur n maximum" s'affiche (ça ne fonctionne pas dans l'exemple ci-dessous, mais dans mon appli, c'est OK).
    Voilà mon code (résumé) :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <html>
    <head>
    <title>
    </title>
    </head>
    <body>
    <form name="FichePoste">
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="maxlength.js"></script>
    Service :
    <div id="MaxService" style="font-size:11px;font-style:italic;text-align:right">
    </div><br>
    <input type="text" name="Service" data-maxsize="10" data-output="MaxService" value="" size="50">
    </form>
    </body>
    </html>

    Si je tape au clavier, la saisie est bien limitée à 10 caractères.
    Si je fais un Ctrl+V d'une chaine de plus de 10 caractères, celle-ci est bien tronquée à 10.
    Par contre, si je fais un clic droit => coller, il me colle le texte sans tenir compte du maximum des 10 caractères.

    Quelqu'un pourrait m'aider à intégrer ce contrôle svp ?

    Merci.

    Je joins également les fichiers js.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    onpaste, oninput.

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Citation Envoyé par Bovino Voir le message
    onpaste
    Merci,

    Mais comme je l'ai écris, je suis incapable de m'en sortir tout seul. Je suppose qu'il faut que j'intègre du code dans le fichier maxlength.js, mais où et surtout comment ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 119
    Points : 44 954
    Points
    44 954
    Par défaut
    Bonsoir,
    et un maxlength="10" n'est pas suffisant sur l'INPUT.

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    L'équivalent sans plug-in:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <input type="text" name="Service" maxlength="10" onchange="updateCounter(this)" onkeyup="updateCounter(this)">
      <p><span id="counter">10</span> lettres restantes</p>
      <script>
        function updateCounter(input){
      var restant = parseInt(input.getAttribute("maxlength")) - input.value.length;
      document.getElementById("counter").innerText = restant; 
    }
      </script>
    http://codepen.io/seraphzz/pen/lGvLm

  6. #6
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Merci pour ces réponses, mais quid des textarea ?

    C'est vraiment compliqué (impossible) de contrôler le coller avec la souris dans le fichier js ?

  7. #7
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bon, à force de chercher, je pense avoir résolu mon problème.
    J'ai ajouté ces deux lignes de code et le coller avec la souris est bien détecté.

    Quelqu'un pour me confirmer que cette méthode est OK ?

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function setformfieldsize($fields, optsize, optoutputdiv){
    	var $=jQuery
    	$fields.each(function(i){
    		var $field=$(this)
    		$field.data('maxsize', optsize || parseInt($field.attr('data-maxsize'))) //max character limit
    		var statusdivid=optoutputdiv || $field.attr('data-output') //id of DIV to output status
    		$field.data('$statusdiv', $('#'+statusdivid).length==1? $('#'+statusdivid) : null)
    
    		$field.unbind('keypress.restrict').bind('keypress.restrict', function(e){
    			setformfieldsize.restrict($field, e)
    		})
    
    		$field.unbind('keyup.show').bind('keyup.show', function(e){
    			setformfieldsize.showlimit($field)
    		})
    
    		$field.bind('input propertychange', function(e){
    			setformfieldsize.showlimit($field)
    		})
    
    		setformfieldsize.showlimit($field) //show status to start
    	})
    }

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/01/2014, 09h25
  2. Détecter un clic de souris
    Par illioc dans le forum Delphi
    Réponses: 17
    Dernier message: 12/02/2007, 00h59
  3. Détecter quand le pointeur souris sort d'une APP.
    Par Bighobbit dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 06/10/2006, 17h49
  4. Réponses: 4
    Dernier message: 11/06/2006, 05h39
  5. Réponses: 8
    Dernier message: 14/03/2005, 21h43

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