Tengo una tabla cuyas filas contienen grupos de botones de radio, así:No se puede establecer de entrada comprueba = "marcado" a través de jQuery
<td class="usegsm">
<input type="hidden" class="use-gsm" value='<%# DataBinder.Eval(Container.DataItem, "use_gsm") %>' />
<input type="hidden" class="use-gsm-lineup" value='<%# DataBinder.Eval(Container.DataItem, "use_gsm_lineup") %>' />
<input type="radio" id="radio1-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" name="radio-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" class="events-lineups" />
<label for="radio1-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>">Events & Lineups</label>
<input type="radio" id="radio2-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" name="radio-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" class="events" />
<label for="radio2-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>">Events</label>
<input type="radio" id="radio3-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" name="radio-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>" class="none" checked="checked" />
<label for="radio3-<%# DataBinder.Eval(Container.DataItem, "MatchId") %>">None</label>
</td>
Cuando se carga la página (dentro document.ready) Me llaman a esta función comprobar los botones de radio correcto, basado en los valores anteriores para input.use-gsm
y input.use-gsm-lineup
:
function setGsmButtonStates() {
$('td.usegsm').buttonset(); /* http://jqueryui.com/demos/button/#radio */
$('td.usegsm').each(function(i) {
var use_gsm = $(this).children('input.use-gsm').val();
var use_gsm_lineup = $(this).children('input.use-gsm-lineup').val();
if (use_gsm == 'Y' && use_gsm_lineup == 'Y') {
$(this).children('input.events-lineups').attr('checked', true);
}
else if (use_gsm == 'Y' && use_gsm_lineup != 'Y') {
$(this).children('input.events').attr('checked', true);
}
else {
$(this).children('input.none').attr('checked', true);
}
});
}
por alguna configuración de .attr('checked',true)
o incluso .attr('checked','checked')
no tiene ningún efecto razón.
¿Estoy usando $.each()
o .attr()
incorrectamente?
Está utilizando '.attr()' bien, creo, lo que significa que es posible que no se haya seleccionado nada. '.children()' solo coincide con hijos inmediatos, intente cambiarlo a '.find()' y vea si funciona. ¿'.buttonset()' envuelve las entradas quizás? – Orbling
Según su código de ejemplo, .children() debería devolver los elementos correctos. – simshaun