Casilla de verificación establecida en jQuery marcada
Ya probé todas las formas posibles, pero todavía no lo consigo. Tengo una ventana modal con un checkbox
Quiero que cuando se abra el modal, elcheckbox
marca o desmarcación se base en un valor de la base de datos. (Ya lo tengo funcionando con otros campos de formulario). Comencé a intentar verificarlo pero no funcionó.
Mi división HTML:
<div id="fModal" class="modal" >
...
<div class="row-form">
<div class="span12">
<span class="top title">Estado</span>
<input type="checkbox" id="estado_cat" class="ibtn">
</div>
</div>
</div>
y el jQuery:
$("#estado_cat").prop( "checked", true );
También probé con attr
y otros que se ven aquí en los foros, pero ninguno parece funcionar.
¿Alguien puede indicarme el camino correcto?
EDITAR
Bien, realmente me estoy perdiendo algo aquí. Puedo marcar/desmarcar usando código si la casilla de verificación está en la página, pero está en el modal , no puedo. Probé docenas de formas diferentes.
Tengo un enlace que se supone que abre el modal:
<a href='#' data-id='".$row['id_cat']."' class='editButton icon-pencil'></a>
y jQuery para "escuchar" el clic y ejecutar algunas operaciones como llenar algunos cuadros de texto con datos provenientes de la base de datos. Todo funciona como quiero, pero el problema es que no puedo marcar/desmarcar la casilla de verificación usando el código. ¡Ayuda por favor!
$(function () {
$(".editButton").click(function () {
var id = $(this).data('id');
$.ajax({
type: "POST",
url: "process.php",
dataType: "json",
data: {
id: id,
op: "edit"
},
}).done(function (data) {
// The next two lines work fine,
// i.e. it grabs the value from database and fills the textboxes
$("#nome_categoria").val(data['nome_categoria']);
$("#descricao_categoria").val(data['descricao_categoria']);
// Then I tried to set the checkbox checked (because it's unchecked by default)
// and it does not work
$("#estado_cat").prop("checked", true);
$('#fModal').modal('show');
});
evt.preventDefault();
return false;
});
});
tienes que usar la función 'prop':
.prop('checked', true);
Antes de jQuery 1.6 (ver la respuesta del usuario2063626 ):
.attr('checked','checked')
Tomando todas las respuestas propuestas y aplicándolas a mi situación, intentando marcar o desmarcar una casilla de verificación según un valor recuperado de verdadero (debería marcar la casilla) o falso (no debería marcar la casilla), probé todo lo anterior y Descubrí que usar .prop("checked", true) y .prop("checked", false ) era la solución correcta.
No puedo agregar comentarios ni respuestas todavía, pero sentí que esto era lo suficientemente importante como para agregarlo a la conversación.
Aquí está el código manual para una modificación del calendario completo que dice que si el valor recuperado "allDay" es verdadero, marque la casilla de verificación con ID "even_allday_yn":
if (allDay)
{
$( "#even_allday_yn").prop('checked', true);
}
else
{
$( "#even_allday_yn").prop('checked', false);
}
Pruebe el siguiente código:
$("div.row-form input[type='checkbox']").attr('checked','checked')
O
$("div.row-form #estado_cat").attr("checked","checked");
O
$("div.row-form #estado_cat").attr("checked",true);
El atributo "marcado" "marca" la casilla de verificación tan pronto como existe. Entonces, para marcar/desmarcar una casilla de verificación, debe configurar/desmarcar el atributo.
Para marcar la casilla:
$('#myCheckbox').attr('checked', 'checked');
Para desmarcar la casilla:
$('#myCheckbox').removeAttr('checked');
Para probar el estado marcado:
if ($('#myCheckbox').is(':checked'))
Espero eso ayude...