Casilla de verificación establecida en jQuery marcada

Resuelto psopa asked hace 11 años • 0 respuestas

Ya probé todas las formas posibles, pero todavía no lo consigo. Tengo una ventana modal con un checkboxQuiero 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 attry 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;
    });
});
psopa avatar Feb 24 '13 01:02 psopa
Aceptado

tienes que usar la función 'prop':

.prop('checked', true);

Antes de jQuery 1.6 (ver la respuesta del usuario2063626 ):

.attr('checked','checked')
singe Batteur avatar Oct 28 '2013 09:10 singe Batteur

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);
}
eriknoyes avatar Apr 23 '2014 06:04 eriknoyes

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);
 avatar Feb 23 '2013 19:02

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...

shadock avatar Feb 11 '2016 13:02 shadock