come da titolo, ho costruito in una tabella la solita checklist da selezionare/deselezionare tramite un tasto.
Appena entro funziona e seleziona, poi deseleziona, poi infine non funziona più.
Ho realizzato un codice "elementare" per capire dove fosse l'errore ma nulla.
Vi metto qualche snippet di codice.
La tabella di cui sopra, creata dinamicamente, riporta come ultima cella una checkbox cliccabile, se cliccata potrà essere inclusa nella lista da stampare, la riga.codice HTML:<tr> <td> </td> <td>ID</td> <td>num. rett.</td> <td>richiesta</td> <td>atto</td> <td>datata</td> <td>nome</td> <td> <button type="button" class="btn btn-default" id="seleziona" data-toggle="tooltip" data-placement="bottom" title="Seleziona tutti"> <span class="fa fa-square-o" aria-hidden="true"></span> </button> </td> </tr> </thead> <tbody> <tr> <td></td> <td>496</td> <td>164/17</td> <td>San Leonardo</td> <td>Annullamento nascita</td> <td>nascita</td> <td>18 dicembre 2017</td> <td><input type="checkbox" name="stampami[0]" value="496"></td> </tr> <tr> <td><strong>art. 98</strong></td> <td>497</td> <td>161/17</td> <td>Resia</td> <td>Annotazione nascita</td> <td>nascita</td> <td>18 dicembre 2017</td> <td><input type="checkbox" name="stampami[1]" value="497"></td> </tr> <tr> <td><strong>art. 98</strong></td> <td>498</td> <td>165/17</td> <td>Dogna</td> <td>Annotazione nascita</td> <td>nascita</td> <td>18 dicembre 2017</td> <td><input type="checkbox" name="stampami[2]" value="498"></td> </tr> <tr> <td><strong>art. 98</strong></td> <td>499</td> <td>166/17</td> <td>Udine</td> <td>Annotazione nascita</td> <td>nascita</td> <td>18 dicembre 2017</td> <td><input type="checkbox" name="stampami[3]" value="499"></td> </tr> </tbody>
Mentre nella parte alta, c'è il tasto #seleziona che serve a selezionarli tutti in un colpo solo.
Ebbene dato che ho jquery attivo nella pagina, ho voluto utilizzarlo e non so perché ma non è andato a buon fine.
Ecco lo snippet di codice relativo al click:
Ora come detto nel titolo, la prima volta vengono cliccati tutti i checkbox, la seconda volta vengono esclusi tutti, ma alla terza cambia solo l'immagine nel bottone e non avviene più nessun check.codice HTML:var status = false; $('#seleziona').click(function() { if (status == true) { $(this).html('<span class="fa fa-square-o" aria-hidden="true"></span>'); status = false; } else { $(this).html('<span class="fa fa-check-square-o" aria-hidden="true"></span>'); status = true; } $("input[name^='stampami']").each( function() { $("input[name^='stampami']").attr('checked', status) ; }); });
Verificato sia in FF che in Chrome, status cambia regolarmente e non potrebbe essere diversamente; ma pare che il resto della funzione ( each ) sembra fregarsene dello stato.

Rispondi quotando

