Bonjour à tous,

je suis entrain de développer une page avec struts dans laquelle j'ai deux listes de string (chaque liste est représentée par des checkbox multiples) et je réalise en javascript la possibilité de transfert entre ces deux listes (on sélectionne des éléments d'une liste, on clique sur un bouton et ces éléments passent sur l'autre liste).

Ces deux listes sont triées par ordre alphabétique donc après un transfert, il faut retrier les listes. Commes ces listes peuvent être longues, le traitement peut prendre du temps. C'est pouquoi au début de mon transfert, je voudrais rendre les deux listes de checkbox disabled puis les rendre de nouveau enabled à la fin du traitement.
Voici le code que j'utilise pour réaliser le transfert de la liste 'from' vers la liste 'to'.

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
25
26
27
28
 
function addOptionFromTo(from, to)
{
  var listeFrom = document.getElementsByName(from)[0];
  var listeTo = document.getElementsByName(to)[0];
  listeTo.disabled=true;
  listeFrom.disabled=true;
  var x = 0;
  var aTrier;
 
  while (x < listeFrom.length ){
    var opt = listeFrom.options[x];
    if (opt.selected){
    	listeTo.options[listeTo.options.length] = new Option(opt.text, opt.value, 0, 0);
    	listeFrom.remove(x);
    	aTrier = true;
    }
    else
    	x++;
  }
  if (aTrier)
	  sortSelectOptions(listeTo);
  else
	  alert("Aucun enregistrement n'est sélectionné pour exécuter l'opération.");
 
  listeTo.disabled=false;
  listeFrom.disabled=false;
}
Cela ne fonctionne pas et je ne comprends pas pourquoi. En effet, lors d'un transfert, même si le traitement (le tri) est très long, on ne voit pas se désactiver les checkbox.
Par contre, si au milieu du traitement, on affiche une 'alert', on peut voir les checkbox se désactiver.
Donc je ne comprends pas pourquoi la désactivation ne marche pas si je "coupe" pas l'appli avec une alert.
Est-ce que quelqu'un saurait me dire pourquoi ça ne fonctionne pas, où ai-je fait une erreur ?

Sinon, j'ai une deuxième petite question. Comme je l'ai dit, mes listes peuvent être longues et il y a donc une scrollbar sur chaque liste. Si on passe les listes à disabled (dans le but qu'on ne puisse pas modifier la liste mais qu'on puisse quand même lire tous les éléments), la scrollbar reste sur firefox mais elle n'est plus utilisable sous IE. Ce comportement est-il modifiable sur IE ? Parce que ça empêche de consulter tous les éléments de la liste.

Merci à tous de votre aide