[Javascript] Problème d'espace et <select> [Résolu]

Problème d'espace et <select> [Résolu] [Javascript] - HTML/CSS - Programmation

Marsh Posté le 04-08-2006 à 17:01:50    

Bonjour à tous,
 
Je suis en train de développer une méthode en javascript qui me permet de gérer des colonnes dans un <select>.
 
Pour ce faire ma fonction reçoit l'id du <select> et parcourt toutes ces options. Chaque option contient à la base une chaîne dont les champs sont séparés par des ';'.
 

Code :
  1. function FormatList(id)
  2. {
  3. lst = document.getElementById(id);
  4. var col1 = 25;
  5. var col2 = 10;
  6. for(i = 0; i < lst.length; i++)
  7. {
  8.  txt = lst.options[i].text;
  9.  arrTxt = txt.split(";" );
  10.  source = arrTxt[0];
  11.  display = source;
  12.  for(j = source.length; j < col1; j++)
  13.   display += " ";
  14.  code = arrTxt[1];
  15.  display += code;
  16.  for(j = code.length; j < col2; j++)
  17.   display += " ";
  18.  nb = arrTxt[2];
  19.  display += nb;
  20.  lst.options[i].text = display;
  21. }
  22. }


 
Voici la fonction simplifiée. Elle fonctionne très bien sous IE mais sous Firefox, les espace sont automatiquement enlevés...
 
Avez-vous déjà rencontré ce problème? bug?
 
Merci.
 
Nico.


Message édité par Shaps le 04-08-2006 à 19:09:34
Reply

Marsh Posté le 04-08-2006 à 17:01:50   

Reply

Marsh Posté le 04-08-2006 à 17:10:17    

met des &nbsp;

Reply

Marsh Posté le 04-08-2006 à 17:13:16    

J'ai déjà testé mais si je met des &nbsp dans mon code Javascript alors il m'affichera &nbsp dans la listbox... :(


Message édité par Shaps le 04-08-2006 à 17:13:33
Reply

Marsh Posté le 04-08-2006 à 17:29:51    

il faut que tu utilises innerHTML plutot, un truc dans le genre:

Code :
  1. var optNode= document.getElementById('a').getElementsByTagName('option');
  2.     for(var i=0; i<optNode.length; i++){
  3.       arrTxt = optNode[i].innerHTML.split(";" );
  4.       while(arrTxt[0].length<10){
  5.         arrTxt[0]+="&nbsp;";
  6.       }
  7.       while(arrTxt[1].length<25){
  8.         arrTxt[1]+="&nbsp;";
  9.       }
  10.       optNode[i].innerHTML = arrTxt.join("" );
  11.     }


Et j'en ai profité pour corriger plein de truc parce certaines doubles affections étaient vraiment pas belles :)
Aaah et attention aux caractères spéciaux genre é qui sont &eacute; dans le innerHTML

Reply

Marsh Posté le 04-08-2006 à 17:50:43    

[:cupra] par contre ca serait pas %20 ou un truc du genre ?

Reply

Marsh Posté le 04-08-2006 à 19:09:19    

Aaah bah un grand merci à toi ;) J'avais pas pensé a cette propriété :D
 
Allez bon weekend à tous !
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed