Ho un modulo con più gruppi di caselle di controllo.Come deselezionare tutte le caselle di controllo tranne quella che usa jQuery?
Ogni opzione di casella di controllo ha un attributo HTML 5 personalizzato denominato itemtype
. Quando l'input di type = "checkbox" cambia, devo valutare la casella che è stata appena selezionata. Se il valore di esso è data-itemtype
è uguale a "Skipper", desidero deselezionare tutte le altre caselle di controllo appartenenti allo stesso gruppo.
In altre parole, si supponga di avere più caselle di controllo e una delle opzioni di casella di controllo abbia un'etichetta denominata "Nessuna", se l'utente verifica "Nessuno", Nulla deve essere selezionato ma "Nessuno". Non posso usare un pulsante di opzione qui perché voglio che l'utente possa controllare più opzioni se "Nessuno" non è selezionato.
Ecco una ripartizione del mio codice
CHECKBOX GRUPPO 1
<input name="control_307[0][307:1003]" id="item_307_1003_0" value="307:1003" data-itemtype="Answer" type="checkbox"> Zulauf Ltd<br>
<input name="control_307[0][307:361]" id="item_307_361_0" value="307:361" data-itemtype="Answer" type="checkbox"> Ziemann, McLaughlin and Kohler
<input name="control_307[0][308:1013]" id="item_307_1013_0" value="308:1013" data-itemtype="Skipper" type="checkbox"> None<br>
CHECKBOX GRUPPO 2
<input name="control_1000[0][1000:999]" id="item_1000_999_0" value="307:1003" data-itemtype="Answer" type="checkbox"> First Options<br>
<input name="control_1000[0][1000:666]" id="item_1000_666_0" value="1000:666" data-itemtype="Answer" type="checkbox"> Some other option
<input name="control_1000[0][1000"123]" id="item_1000_123_0" value="308:1013" data-itemtype="Skipper" type="checkbox"> None<br>
Ho creare un violino visualizzare quello che ho fatto insieme a l'intero modulo https://jsfiddle.net/8yf0v3xt/13/
Ho provato a fare qualcosa di simile questo ma non funziona
$(:checkbox).change(function(){
var skipper = $("input:checkbox[data-itemtype='Skipper']");
if(skipper.is(":checked")){
$(this).attr('checked', false); //uncheck all the boxes for the current group
skipper.attr('checked', true); //re-check the box that caused everything to uncheck
}
}).change();
Cosa posso fare per annullare tutto l'opzione se è selezionato "Nessuno"?
@MikeA Penso che questo sia quello che vuoi? https://jsfiddle.net/8yf0v3xt/14/ – ketan
@ketan che impedisce semplicemente il clic sulla casella anycheck che ha il tipo di voce skipper. –