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

jQuery Discussion :

Ajouter du texte dans une TEXTAREA à la position du curseur


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2019
    Messages : 1
    Par défaut Ajouter du texte dans une TEXTAREA à la position du curseur
    Bonjour,
    dans un formulaire j'ai un champ nommé $('#editor') qui contient du texte, je souhaite rajouter du "nouveau texte"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function actionJP21() {
    	var texte = ' nouveau texte ';
    		var val = $('#editor').val();
    		$('#editor').val(val+' '+texte);
    		$('#editor').focus(); return false; 
    		}
    ça marche bien mais le texte est rajouté à la fin... je souhaiterai le rajouter là où se trouve le curseur... si $('#editor') contient "aaa bbb" et que le curseur est positionné entre "aaa" et "bbb" j'aimerais que $('#editor') contienne à la fin
    "aaa nouveau texte bbb"

    j'ai cherché sur le net et j'ai trouvé qu'il fallait peut-être utiliser un .selectionEnd mais sur Chrome ça ne marche pas du tout !!!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function actionJP21() {
    	var texte = ' nouveau texte ';
    		var val = $('#editor').val();
    		var poscur = $('#editor').selectionEnd;
    		$('#editor').val(val+' '+texte+poscur);
    		$('#editor').focus(); return false; 
    		}
    il me met poscur à undefined


    savez-vous pourquoi ?
    HELP !!!!! MERCI

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Citation Envoyé par lapincretinz Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function actionJP21() {
        var texte = ' nouveau texte ';
            var val = $('#editor').val();
            var poscur = $('#editor').selectionEnd;
            $('#editor').val(val+' '+texte+poscur);
            $('#editor').focus(); return false; 
            }
    il me met poscur à undefined
    savez-vous pourquoi ?
    C'est lié à la syntaxe de JQuery apparemment... Je n'utilise pas JQuery mais en regardant le débogueur on voit comment récupérer l'élément (on peut faire $('#editor')[0]), cela fonctionne donc quand on fait cela : var poscur = $('#editor')[0].selectionEnd;...

    Bon de toute façon si le curseur n'est pas placé cela te renvoi 0 (c'est pourquoi pour pouvoir tester plusieurs positions facilement j'ai utilisé un bouton dans mon exemple ci-dessous)...

    Sinon faire ceci $('#editor').val(val+' '+texte+poscur); n'a pas de sens, cela ne fait pas ce que tu crois car poscur correspond à une position (c'est un nombre entier) ce n'est pas la deuxième partie du texte...

    De plus tu ajoutes la chaine texte au texte entier val donc tu te retrouves avec le même problème qu'avec ton premier code ---> texte se retrouve à la fin...


    Voici une solution simple en JS pur : https://jsbin.com/vukunisesu/1/edit?html,js,output ... Place le curseur quelque part et clique sur le bouton...

    Si tu tiens à le faire avec JQuery ce n'est pas compliqué si tu tiens compte de ma remarque ci-dessus (rajouter : [0])

Discussions similaires

  1. Ajouter du texte dans une edit box
    Par raf_gug dans le forum MFC
    Réponses: 10
    Dernier message: 23/05/2013, 10h00
  2. Ajouter du texte dans une zone textarea
    Par isitien dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/04/2012, 14h16
  3. Ajouter du texte dans une ListBox sans sauter de ligne
    Par walid_kerkoub dans le forum Composants VCL
    Réponses: 2
    Dernier message: 03/03/2008, 15h42
  4. Réponses: 1
    Dernier message: 25/10/2006, 22h03
  5. placer un texte dans une textarea en cliquant sur un bouton
    Par BernardT dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/11/2005, 17h17

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