Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    menu+bottone+memorizazione voci menu

    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!!

  2. #2
    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>
    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.

  3. #3
    grazie MIILLEEEE!!!!

    Il tuo esempio era perfetto!!

  4. #4
    Visto che non sono pratica di js, è possibile creare anche la funzione rimuovi per rimuovere le voci inserite nella textarea???

    Grazie!!!

  5. #5
    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;
    }
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.