ciao a tutti,
devo cercare un modo per fare questa cosa:
da un menu a tendina ma quando seleziono una voce o più di una tramite un bottone ADD devo aggiungere i nome selezionati su una textarea .
avete una vaga idea di come si possa fare??
grazie!!
 
			
			ciao a tutti,
devo cercare un modo per fare questa cosa:
da un menu a tendina ma quando seleziono una voce o più di una tramite un bottone ADD devo aggiungere i nome selezionati su una textarea .
avete una vaga idea di come si possa fare??
grazie!!
Con questo codice, basta che passi alla funzione aggiungi() l'id del menu a tendina e l'id della textarea ogni volta che la usi in un pulsante per scrivere nella textarea i valori (values) delle options selezionate. La funzione separa i valori nella textarea con una virgola e se un valore è già stato inserito, non ripete l'inserimento. Ovviamente permette di inserire più valori insieme quando li hai selezionati con CTRL. Spero di esserti stato utile.codice:<html> <head> <title>Aggiungi voci</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> function aggiungi(idsrc,iddst) { var valori = ""; var elem = document.getElementById(idsrc); for (n=0; n<elem.options.length; n++) { if (elem.options[n].selected==true) { if (document.getElementById(iddst).value.indexOf(elem.options[n].value)==-1) valori = valori + "," + elem.options[n].value; } } if (valori.substring(0,1)=="," && document.getElementById(iddst).value=="") valori = valori.substring(1,valori.length); document.getElementById(iddst).value += valori; } </script> </head> <body> <form> <select id="menu" name="menu" size="10" multiple="multiple"> <option value="Voce_1">Voce 1</option> <option value="Voce_2">Voce 2</option> <option value="Voce_3">Voce 3</option> <option value="Voce_4">Voce 4</option> <option value="Voce_5">Voce 5</option> <option value="Voce_6">Voce 6</option> <option value="Voce_7">Voce 7</option> </select> <input type="button" value="Add" onclick="aggiungi('menu','voci');" /> <textarea id="voci" name="voci" rows="6" cols="32"></textarea> </form> </body> </html>
 
			
			grazie MIILLEEEE!!!!
Il tuo esempio era perfetto!!
 
			
			Visto che non sono pratica di js, è possibile creare anche la funzione rimuovi per rimuovere le voci inserite nella textarea???
Grazie!!!
Poi chiaramente aggiungi un button nel form e all'onclick richiami la funzione rimuovi() passandole, come per aggiungi(), gli id del menu a tendina e dell'area di testo. LA funzione elimina gli elementi che selezioni dal menu a tendina solo se sono presenti nell'area di testo e gestisce le coppie di virgole rimaste vuote. L'ho scritta e l'ho provata di fretta, ma dovrebbe funzionare.codice:function rimuovi(idsrc,iddst) { var elem = document.getElementById(idsrc); var listavoci = document.getElementById(iddst); for (n=0; n<elem.options.length; n++) { if (elem.options[n].selected==true) { if (listavoci.value.indexOf(elem.options[n].value)!=-1) { var inizio = listavoci.value.indexOf(elem.options[n].value); var lung = elem.options[n].value.length; var fine = inizio + lung; var ch = (listavoci.value.substring(fine,fine + 1)==',')? 1 : 0; listavoci = listavoci.value.substring(0,inizio) + listavoci.value.substring(fine + ch,listavoci.value.length); } } } document.getElementById(iddst).value = ""; document.getElementById(iddst).value = listavoci; }