Ciao a tutti,
avrei bisogno di valorizzare un select multipla da un'altra select multipla apportunamente riempita.

Ho modificato un funzione sposta() che ho trovato in giro perchč ho solo bisogno di valorizzare l'altra select e non toccare per niente i valori della prima.

Ecco lo script:

codice:
<!--

function sposta(form,direzione){
	j=0;
	if(direzione=='-->'){
		partenza=form.categorie_disponibili;
		arrivo=form.id_categoria;
	}
	else{
		partenza=form.id_categoria;
		arrivo=form.categorie_disponibili;
	}

	non_sel=new Array();
	sel=new Array();
	//per ogni opzione di partenza controlla: 
	for(i=0;i<partenza.options.length;i++){
		//se č selezionata, mettila nell'array sel
		if(partenza.options[i].selected){
			partenza.options[i].selected=false;
			sel.push(partenza.options[i]);
		}
		//altrimenti non č selezionata, quindi mettila nell'array non_sel
		else{
			non_sel.push(partenza.options[i]);
		}
	}
	//per ogni opzione di arrivo
	for(i=0;i<arrivo.options.length;i++){
		//aggiungi all'array sel tutti i valori di arrivo
		sel.push(arrivo.options[i]);
	}

	//azzera le due select
	//partenza.options.length=0;
	arrivo.options.length=0;
	//Per ogni valore in non_sel
	for(i=0;i<non_sel.length;i++){
		//scrivilo in partenza
		partenza.options[i]=non_sel[i];
	}
	//Per ogni valore in sel
	for(i=0;i<sel.length;i++){
		//scrivilo in arrivo
		arrivo.options[i]=sel[i];
	}
}

//-->
codice:
<select class="formText" name="categorie_disponibili" style="width: 300px; height: 150px" multiple>
     <optgroup label="Professional">
       <option value="1">Opzione 1</option>
       <option value="2>Opzione 2/option>
</select> 
<input type="button" value=" &gt;&gt; " onClick="sposta(this.form, '-->')" />  
<input type="button" value=" &lt;&lt; " onClick="sposta(this.form, '<--')"/> 
<select name="id_categoria" class="formText" style="width: 300px; height: 150px" multiple>
  <option value="36">ITALIANO -> opzione 3</option>
</select>
Il problema č che mi dā errore quando commento :

//partenza.options.length=0;

mi dice proprietā o metodi non supportati su questa riga:

arrivo.options[i]=sel[i];
}

ma non capisco perchč!?! Eppure io l'array arrivo non lo tocco per niente.. sono andato a cancellare solo il codice che modificava la SLEECT di partenza..

Qualcuno mi sā aiutare ?

Grazie 1000