Usare jQuery per scambiare elementi tra due ListBox

di Marco De Sanctis, in jQuery, ASP.NET 2.0, ASP.NET 3.5,

Il punto di forza di jQuery è quello di rendere estremamente semplice e veloce l'implementazione via Javascript di funzionalità tipiche di una pagina web. Una di queste è sicuramente quella di scambiare, tramite due pulsanti, gli elementi tra due liste.


L'HTML è costituito da due SELECT e due button arrangiati all'interno di alcuni div per ottenere il layout della figura precedente:

Definizione dell'HTML
<div style="float: left; margin:2px">
    <select id="source" size="10" style="width:80px" multiple="multiple">
        <option value="1">Item 1</option>
        <option value="2">Item 2</option>
        ....
    </select>
</div>
<div style="float: left; margin:2px">
    <input type="button" id="moveRight" value="->" /><br />
    <input type="button" id="moveLeft" value="<-" />
</div>
<div style="float: left; margin:2px">
    <select id="target" size="10" style="width:80px" multiple="multiple">
    </select>
</div>
<div style="clear:left"></div>

A questo punto non bisogna far altro che gestire, tramite jQuery, gli eventi click (rigorosamente lato client) su entrambi i pulsanti:

Handler degli eventi di click dei pulsanti
<script type="text/javascript">
    $(function() {
        $('#moveRight').click(function() {
            $('#source option:selected').appendTo('#target');
        })
        $('#moveLeft').click(function() {
            $('#target option:selected').appendTo('#source');
        });
    });
</script>

La logica è molto semplice: tramite

$('#moveRight').click(function() { ... });

viene individuato il pulsante con id "moveRight", assegnando come gestore per il suo evento click il codice inserito nella function anonima successiva, che nel nostro caso specifico è

$('#source option:selected').appendTo('#target');

Questo statement non fa altro che individuare, all'interno della SELECT di nome "source", gli elementi selezionati, per poi aggiungerli a quella di nome "target". Un codice assolutamente analogo implementa la logica necessaria per supportare lo spostamento nel verso opposto.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi