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.
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>
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.
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:
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) ;
});
});
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.
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.