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 :

Modifier le contenu d'une TEXTAREA


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut Modifier le contenu d'une TEXTAREA
    Bonjour,

    A mon grand étonnement, j'ai trouvé un javascript qui permet de copier dans le presse papier le contenu d'un textearea ce que je ne croyais pas possible pour des raisons de sécurité.
    Bref, j'aimerais y saisir un numéro de sécurité sociale genre 185087500200146, qu'il devienne 1 85 08 75 002 001 46 et qu'il se copie dans le presse papier pour que je puisse le coller n'importe où ensuite.
    Il s'agirait donc de récupérer cette saisie après transformation dans une variable je suppose.
    Je suis novice en la matière et je ne trouve pas la variable à modifier dans le script récupéré.
    Quelqu’un pourrait me donner des pistes pour atteindre mon objectif svp?

    Le script:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <!DOCTYPE HTML>
    <html>
     
    <body>
     
     
    <p>
      <button class="js-textareacopybtn" style="vertical-align:top;">Copy Textarea</button>
      <textarea class="js-copytextarea">Hello I'm some text</textarea>
    </p>
    <script language= "javascript">
     
     
     
    var copyTextareaBtn = document.querySelector('.js-textareacopybtn');
     
    copyTextareaBtn.addEventListener('click', function(event) {
      var copyTextarea = document.querySelector('.js-copytextarea');
      copyTextarea.focus();
      copyTextarea.select();
     
     
      try {
        var successful = document.execCommand('copy');
        var msg = successful ? 'successful' : 'unsuccessful';
        console.log('Copying text command was ' + msg);
      } catch (err) {
        console.log('Oops, unable to copy'); 
      }
    });
     
     
     
    </script>
     
     
     
    </html>
     
     
     
    </body>
     
    </html>

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Salut,

    petit conseil: choisis un input text plutôt qu'un textarea, sauf si tu comptes utiliser cette zone pour d'autres contenus plus longs;

    Là, je teste aussi que le contenu de la zone contient bien 15 chiffres; sinon, le bouton ne fait rien.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div>
    	<input type="text" id="zone" />
    	<input type="button" id="copy" value="copier" />
    </div>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    const esp=[0,2,4,6,9,12],
    z=document.getElementById("zone");
    document.getElementById("copy").addEventListener("click",()=>{
    	let num=z.value;
    	if(/^\d{15}$/.test(num)){
    		const arr=[...num];
    		esp.forEach((v)=>{arr[v]+=" "});
    		z.value=arr.join("");
    		z.select();
    		document.execCommand("copy");
    	}
    },false)

  3. #3
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    Waaaa!!! Super! Merci beaucoup.

    J'y croyais pas...

    Aucun risque côté faille sur ce genre de javascript en intranet?
    C'est pour mon boulot.

    Autre question:
    Pour gagner du temps, serait il possible que je copie dans le presse papier mon numéro 185087500200146 depuis une appli métier et qu'en cliquant simplement sur le bouton il remplisse le champs avec le numero espacé et que cette nouvelle version se place dans le presse papier..
    Je ne sais pas si je suis clair:
    Je suis sur mon logiciel métier (je mets en mémoire le numéro sans espace), je bascule sur ma page html et en cliquant simplement sur le bouton, je me retrouve avec le numéro comprenant les espaces dans le presse papier...
    Ça serait encore plus top et plus rapide! (j'avais pas pensé...)

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Tu veux dire que tu n'aurais plus besoin de champ texte?

  5. #5
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    En fait, stimulé par le script, les idées viennent...

    En effet, ne pas le copier moi même serait top.

    Voilà l'idéal, 3 boutons:
    Un qui génère avec espace si je viens avec le num sans espace
    Un qui génère sans espace si je viens avec espace
    Un qui efface.

    En face des boutons il y aurait les champs qui seraient remplis, de telle sorte que juste en cliquant dans les champs l'information se remettrait dans le presse papier.
    Cela me permettrait d'utiliser le presse papier pour autre chose sur le même dossier et de revenir choper le numéro dans le format voulu à tout moment...

    [bouton avec espace] 185087500200146
    [bouton sans espace] 1 85 08 75 002 001 46
    [effacer]
    Que je clique sur le premier ou le 2 ème, les 2 informations s'afficheraient...

    Voilà c'est probablement beaucoup demandé...
    De toute facon, je vais me servir de ta base pour d'autre mise en forme mais je suis encore laborieux car novice en javascript...

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    difficile sans permissions!

    A défaut, un ptit CTRL V dans la zone avant de cliquer...

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Je parlais de ta précédente requête: faire un "paste" dans la zone;

  8. #8
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    ah.... les permissions... zut...
    Elles bloqueraient pour quelles parties du projet?

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Pour ce que tu disais plus haut: coller un numéro directement depuis le presse-papier sans faire CTRL V

  10. #10
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    ok, je colle moi même dans un des 2 champs:

    1) l'autre se mettrait il au format après le clique, que je colle dans celui avec espace ou celui sans?
    2) un clique sur le champs pourrait il me le remettre en mémoire à tout moment?

  11. #11
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    pour info, je rencontre 2 problèmes avec le script.
    1) il ne semble pas marcher sous IE
    2) quand je double clique sur le nuémro contracté, il chope un espace derrière et du coup j'ai 16 caractères...

  12. #12
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    - copier s'effectue sans permission spéciale donc dès que tu sélectionnes un nouveau contenu, et que tu demandes "copy", il va dans le presse-papier;
    - pour ta nouvelle idée, le mieux est de garder à vue tes 2 versions du numéro;

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    - pour l'instant je n'ai rien fait pour IE!
    - ne va pas trop vite dans tes essais!

  14. #14
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    Oui, excuse moi entre mon enthousiasme et mes marmots qui m'appellent pour leurs devoirs, je suis un peu speed!

    Je teste tout ça calmement et je t'en reparle.
    Je vais tenté le Onblur ou je sais pas quoi pour copier en mémoire...
    Je t'en reparle si tu veux bien...

  15. #15
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bref:
    1) tu as 2 champs côte à côte
    2) tu colles le numéro d'origine dans le premier
    3) tu cliques sur le bouton et ça le met en forme dans le deuxième

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div>
    	<input type="text" id="zone" /> 
    	<input type="button" id="copy" value="mettre en forme et copier" /> 
    	<input type="text" id="zone2" />
    </div>
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const esp=[0,2,4,6,9,12],
    z=document.getElementById("zone"),
    z2=document.getElementById("zone2");
    document.getElementById("copy").addEventListener("click",()=>{
    	let num=z.value;
    	if(/^\d{15}$/.test(num)){
    		const arr=[...num];
    		esp.forEach((v)=>{arr[v]+=" "});
    		z2.value=arr.join("");
    	}
    },false)

  16. #16
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    Là je dois y aller, mais je teste tout cela.
    Un grand merci en tout cas!

  17. #17
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Un poil plus simple:

    1) Quand tu copies la valeur dans le champ 1, ça la met dans le champ 2 sur onchange;
    2) Toute valeur erronée dans le champ 1 efface les 2 champs;
    2) Plus besoin de bouton;
    3) Adapté pour IE.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div>
    <label>id brut <input type="text" id="zone" /></label> ==> 
    <label>id formaté <input type="text" id="zone2" /></label>
    </div>
    Code javascript : 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
    window.addEventListener("load",function(){
    	const esp=[0,2,4,6,9,12],
    	z=document.getElementById("zone"),
    	z2=document.getElementById("zone2");
     
    	z.addEventListener("change",function(){
    		const num=this.value;
    		if(/^\d{15}$/.test(num)){
    			const arr=num.split("");
    			esp.forEach(function(v){arr[v]+=" "});
    			z2.value=arr.join("");
    		}
    		else{
    			z.value=z2.value="";
    		}
    	},false);
    },false)

  18. #18
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    Yep, j'ai essayé tout ça...

    Alors, je constate ceci:
    1) Si je colle le numéro compacte 185087500200146 avec un ou des espaces blancs devant ou derrière, il serait souhaitable de supprimer ces espaces, le programme n'aurait plus que 15 caractères dans lesquels il mettrait les espaces désirés cette fois. Ce serait plus permissif que de contraindre à 15 chiffres. Si mes collègues rentrent plus ou moins de caractères , ils recommenceront, pas grave...
    2) Si je colle le numéro avec les espaces, il s'agirait de faire la même chose, supprimer tous les espaces, et alors je me retrouverais avec le num sous la forme: 185087500200146
    3) "Toute valeur erronée dans le champ 1 efface les 2 champs", je n'arrive pas à voir l'intérêt. Tu penses à quoi?
    4) il faut que je fasse l'inverse aussi entrer de l'espacé et récupérer du compacté.

    J'en suis là, je tâche de décrypter les programmes.


    Je pense en effet plutôt tendre vers ça:
    [bouton avec espace vers sans espace] 185087500200146
    [bouton sans espace vers avec espace] 1 85 08 75 002 001 46
    [boutton effacer]

    Avec en plus un clic dans le champs qui copy en presse papier une fois les scripts bouton effectuées....

  19. #19
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Tu as tous les éléments pour faire ce que tu veux... parce que ton problème d'espaces est vraiment basique et je t'ai donné tout le reste;
    Tu montrerais une maquette html, ce ne serait pas plus mal...

  20. #20
    Membre du Club
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 200
    Points : 64
    Points
    64
    Par défaut
    Je vais m'y atteler...



    Nom : eff.PNG
Affichages : 1144
Taille : 6,4 Ko

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. modifier le contenu d'une div
    Par danou9 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/06/2007, 11h51
  2. Modifier le contenu d'une page de notebook ?
    Par skip78 dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 09/12/2006, 14h59
  3. modifier le contenu d'une cellule
    Par STEPH69000 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/06/2006, 17h12
  4. [Upload] Modifier le contenu d'une liste box automatiquemen
    Par Phenomenium dans le forum Langage
    Réponses: 7
    Dernier message: 16/01/2006, 21h42
  5. modifier le contenu d'une table avec innerHTML
    Par francon81 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/05/2005, 09h02

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