Aiuto variazione script textarea

di il
2 risposte

Aiuto variazione script textarea

Buongiorno a tutti. Chiedo scusa (a chi l'aveva gia` letto) se modifico il messaggio, ma nel frattempo ho trovato la soluzione alla mia domanda precedente e si e` posto, invece, un nuovo problema. Vorrei sapere come modificare il codice che segue (o trovare un'alternativa), affinche, deselezionando una voce, questa venisse cancellata anche dall'elenco nella textarea, o, quantomeno, non venisse ripetuta come succede ora. Grazie per l'aiuto

<input type="checkbox" class="selectfield" name="selectfield" value="IB2001">IB2001</input><br>
<input type="checkbox" class="selectfield" name="selectfield" value="IB2002">IB2002</input><br>

<textarea style="width:100%" name="info" id="info" cols="20" rows="5"></textarea>

  <script
        src="https://code.jquery.com/jquery-3.3.1.min.js"
        integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
        crossorigin="anonymous"></script>

<script>
window.onload=function(){
      
$(".selectfield").on("change", function() {
    var $select = $(this);
    $("#info").val(function(i, val) {
      return val += '\n'+$select.val();
    })
});
    }
  </script>
  

2 Risposte

  • Re: Aiuto variazione script textarea

    Ciao,

    innanzitutto ti segnalo che la funzione window.onload non ti serve, poiché l'utente non può comunque premere i checkbox finché la pagina non è caricata.

    Qui sotto puoi vedere lo script corretto e commentato, così che tu possa capire le modifiche.
    
    //funzione richiamata ogni volta che viene cambiato lo stato di un checkbox
        $(".selectfield").on("change", function () {
            //azzera il contenuto della variabile result
            let result = '';
            //seleziona tutti i checkbox attivi (:checked)
            $('.selectfield:checked').each(function () {
                //aggiunge alla variabile result il valore del checkbox attivo 
                //(la funzione each cicla attraverso tutti i checkbox attivi e $(this) selezione l'elemento attuale all'interno del ciclo)
                result += $(this).val();
                result += '\n';
            });
            //inserisce il risultato nella textarea
            $('#info').text(result);
        });
    
  • Re: Aiuto variazione script textarea

    Perfetto, grazie mille Simone. Ciao
Devi accedere o registrarti per scrivere nel forum
2 risposte