Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1626 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS]Split sur retour à la ligne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS]Split sur retour à la ligne

n°1900408
getget
Il y en a qui ont essayé ...
Posté le 29-06-2009 à 23:40:53  profilanswer
 

Bonjour, souhaite découper une chaine sur les retours à la ligne avec split() en JS, mais j'ai un peu de mal :/
 
J'ai testé :

Code :
  1. function pasteCol(event)
  2. {
  3.  var notes=document.getElementById('note_0').value;
  4.  var tab= new RegExp('[\r\n]');
  5.  notes=notes.split(tab);
  6.  document.getElementById('note_0').value=notes[0];
  7.  document.getElementById('note_1').value=notes[1];
  8.  document.getElementById('note_2').value=notes[2];
  9. }


 
et
 

Code :
  1. function pasteCol(event)
  2. {
  3.  var notes=document.getElementById('note_0').value;
  4.  var tab= new RegExp();
  5.  notes=notes.split("\r\n" );
  6.  document.getElementById('note_0').value=notes[0];
  7.  document.getElementById('note_1').value=notes[1];
  8.  document.getElementById('note_2').value=notes[2];
  9. }


 
chacune avec \r, \n ou \r\n mais ca ne marche pas:/


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
mood
Publicité
Posté le 29-06-2009 à 23:40:53  profilanswer
 

n°1900465
pataluc
Posté le 30-06-2009 à 10:23:31  profilanswer
 

que je teste moi avec le code que je t'ai mis dans ton autre topic, le alert() qui me permet de savoir que l'élément est déclenché apparait avant le texte dans l'input.  
 
du coup j'aurais tendance à dire que le problème ne vient pas du split, mais du fait que la case est encore vide au moment ou tu fais le split...

n°1900470
pataluc
Posté le 30-06-2009 à 10:36:29  profilanswer
 

sinon, pour la petite histoire, je viens de m'apercevoir qu'il y avait un évenement onpaste sur les input (qui a l'air de foncionner sur ie et ff)... pourquoi tu n'as pas utilisé ca?

n°1900473
pataluc
Posté le 30-06-2009 à 10:43:21  profilanswer
 

j'ai testé, même en supposant que j'ai tort sur l'histoire de l'enchainement (le input qui n'est pas encore rempli), le fait de coller un texte sur plusieurs lignes me le remet sur une ligne avec des espaces... je sais pas trop comment tu peux faire du coup. je suis en train de regarder du coté du onpaste.

n°1900635
getget
Il y en a qui ont essayé ...
Posté le 30-06-2009 à 16:19:50  profilanswer
 

Je pense que l'ordre est bon, car si je split sur le caractère " " (espace) et qu je colle une chaine genre 0 2 4 ca marche ;)


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°1901028
getget
Il y en a qui ont essayé ...
Posté le 01-07-2009 à 12:48:32  profilanswer
 

En fait, je pense que tu as raison, je pense qu'il y a un problème de séquencement ...
 
si je fais  

Code :
  1. function pasteCol(event)
  2. {
  3.  alert("collé" );
  4.  var notes=document.getElementById('note_0').value;
  5.  var tab= new RegExp('\r\n|\r|\n');
  6.  alert(notes);
  7.  notes=notes.split(tab);
  8.  document.getElementById('note_0').value=notes[0];
  9.  document.getElementById('note_1').value=notes[1];
  10.  document.getElementById('note_2').value=notes[2];
  11. }


 
J'ai l'alert "collé", puis un alert vide, puis le texte se colle dans l"input "note_0" ... ce qui voudrait dire que l'événement observé par prototype est lancé avant que l'action "coller" soit effectivement faite et je ne sais pas comment contourner ça :cry:


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°1901048
pataluc
Posté le 01-07-2009 à 13:44:40  profilanswer
 

c'est ce qu'il m'avait semblé... je ne sais pas comment tu peux contourner ca.

n°1901127
getget
Il y en a qui ont essayé ...
Posté le 01-07-2009 à 15:00:00  profilanswer
 

1er problème résolu, le split ne marche pas sur \r\n avec un input text, ca marche avec un textarea par contre, maintenant, il me reste à voir comment gérer l'evenement coller


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°1901131
getget
Il y en a qui ont essayé ...
Posté le 01-07-2009 à 15:05:59  profilanswer
 

Bon, ben j'ai fait le cochon mais ca marche ;)

Code :
  1. function pasteCol(event)
  2. {
  3.  setTimeout("filltextareas()",500);
  4. }
  5. function filltextareas(){
  6.  var notes=document.getElementById('note_0').value;
  7.  var tab= new RegExp('\r\n|\r|\n');
  8.  notes=notes.split(tab);
  9.  document.getElementById('note_0').value=notes[0];
  10.  document.getElementById('note_1').value=notes[1];
  11.  document.getElementById('note_2').value=notes[2];
  12. }


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°1902215
gatsu35
Blablaté par Harko
Posté le 04-07-2009 à 07:51:13  profilanswer
 

Code :
  1. function pasteCol(event)
  2. {
  3.  setTimeout(filltextareas,500);
  4. }
  5. function filltextareas(){
  6.  var notes=document.getElementById('note_0').value;
  7.  notes=notes.split(/\r\n|\r|\n/);
  8.  for (var i=0; i<notes.length; i++)
  9.   document.getElementById('note_'+i).value=notes[i];
  10. }
 

PS : c'est un peu une hérésie de passer une string dans setTimeout alors qu'on peut passer directement une référence à une fonction, dans ce cas tu remarqueras que je n'ai pas mis les guillemets de la fonction, sinon elle se serait immédiatement éxécutée


Message édité par gatsu35 le 04-07-2009 à 07:51:37

---------------
Blablaté par Harko
mood
Publicité
Posté le 04-07-2009 à 07:51:13  profilanswer
 

n°1902221
getget
Il y en a qui ont essayé ...
Posté le 04-07-2009 à 09:41:09  profilanswer
 

J'ai enlevé les ", et merci pour le for, mais là c'était pour l'exemple, les "note_i" proviennent d'un script php qui les génère en fonction d'une requête sql (ils ne se suivent pas ;))


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°1902588
gatsu35
Blablaté par Harko
Posté le 06-07-2009 à 11:30:19  profilanswer
 

getget a écrit :

J'ai enlevé les ", et merci pour le for, mais là c'était pour l'exemple, les "note_i" proviennent d'un script php qui les génère en fonction d'une requête sql (ils ne se suivent pas ;))


ah et faut aussi enlever les () car sinon tu auras droit à une execution immediate de ta fonction


---------------
Blablaté par Harko

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS]Split sur retour à la ligne

 

Sujets relatifs
Ligne de commande pour sysprep[JavaScript] Cacher une ligne d'un tableau avec une hauteur à 0
[VBS][Résolu] Supprimer une ligne dans ExcelDessiner une ligne en VB6
Explode / split ou autre conserver le délimiteurAnimation flash marche en local... mais pas en ligne
[RESOLU]JTable : colorier ligne ou cellule selon critère de provenanceSupprimer une ligne via un formulaire
parseur php avec @implode, preg_split . Probleme pour adapter le code[PHP] Intégration de texte avec sauts de ligne dans une image
Plus de sujets relatifs à : [JS]Split sur retour à la ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR