Ya probé todas las formas posibles, pero todavía no conseguí que funcionara. Tengo una ventana modal con un checkbox
deseo de que cuando se abra el modal, la checkbox
casilla de verificación o desmarque se base en un valor de base de datos. (Ya lo tengo trabajando con otros campos de formulario). Comencé a tratar de comprobarlo pero no funcionó.
Mi html div:
<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 señalarme el camino correcto?
EDITAR: ok, realmente me falta algo aquí ... Puedo marcar / desmarcar usando código si la casilla de verificación está en la página, pero está en la ventana modal, no puedo. Intenté docenas de formas diferentes ...
Tengo un enlace que se supone que abre el modal:
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 configurar la casilla de verificación marcada / desmarcada 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 its unchecked by default) and it does not work
$("#estado_cat").prop("checked", true);
$('#fModal').modal('show');
});
evt.preventDefault();
return false;
});
});
Respuestas:
tienes que usar la función 'prop':
Antes de jQuery 1.6 (ver la respuesta del usuario 2063626 ):
fuente
Tomando todas las respuestas propuestas y aplicándolas a mi situación, tratando de marcar o desmarcar una casilla de verificación basada en un valor recuperado de verdadero (debería marcar la casilla) o falso (no debería marcar la casilla), intenté todo lo anterior y descubrió que usar .prop ("verificado", verdadero) y .prop ("verificado", falso ) eran la solución correcta.
Todavía no puedo agregar comentarios o respuestas, pero sentí que esto era lo suficientemente importante como para agregarlo a la conversación.
Aquí está el código de mano para una modificación de calendario completo que dice si el valor recuperado "allDay" es verdadero, luego marque la casilla de verificación con ID "even_allday_yn":
fuente
$( "#even_allday_yn").prop('checked', allDay);
$('#even_allday_yn').prop('checked', allDay === true)
funcionará porqueallDay === true
da un resultado booleano.Amigo intente debajo del código:
O
O
fuente
.prop('checked', true)
lugar deattr
: me encontré con el mismo problema yprop
funciona.:checked
pseudo-selector u otras características HTML de casillas de verificación nativas, debe utilizarlo.prop
..attr()
es el camino a seguir para las versiones anteriores,.prop()
para jQuery 1.6+.El atributo "marcado" marca la casilla tan pronto como existe. Entonces, para marcar / desmarcar una casilla de verificación, debe activar / desactivar el atributo.
Para marcar la casilla:
Para desmarcar la casilla:
Para probar el estado verificado:
Espero eso ayude...
fuente
Como se encuentra en una ventana modal (ya sea dinámica o en la página), puede usar el siguiente código para lograr su objetivo: (Encontré el mismo problema en mi sitio y así es como lo solucioné)
HTML:
CÓDIGO:
En el "kendoWindow" anterior está mi ventana (la mía es dinámica, pero también hago esto cuando agrego un elemento directamente en la página). Estoy recorriendo una matriz de datos ("queriesToAddToGroup") para ver si alguna fila tiene un atributo de COPY. Si es así, quiero activar la casilla de verificación dentro de la ventana que establece ese atributo cuando un usuario guarda desde esta ventana.
fuente
prop
como sugiere esta respuesta, es la forma CORRECTA de lograr la casilla de verificación / desmarque dinámica de la casilla de verificación jQuery.funcionará Asegúrese de que verdadero y falso no estén entre comillas.
fuente
.prop('checked', true);
Más información en este post.attr()
funcionó, como se describe.Puede escribir como el código dado a continuación.
HTML
jQuery
Espero que funcione para ti.
fuente
Si desea utilizar esta funcionalidad para un script de GreaseMonkey para marcar automáticamente una casilla de verificación en una página, tenga en cuenta que simplemente establecer la propiedad marcada puede no activar la acción asociada. En ese caso, "hacer clic" en la casilla de verificación probablemente sí (y establecer la propiedad marcada también).
fuente
Buscar devolverá la matriz, así que use [0] para obtener incluso si solo hay un elemento
si no usas find entonces
esto funcionó bien en Mozilla Firefox para mí
fuente
Trabajó para mi:
fuente
Intente esto ya que probablemente esté usando jQuery UI (si no, por favor comente)
fuente
¿Has intentado correr
$("#estado_cat").checkboxradio("refresh")
en tu casilla de verificación?fuente
Esto funciona.
fuente
Encontré este problema también.
y aquí está mi viejo código no funciona
Aquí está mi nuevo código que funciona ahora:
Por lo tanto, el punto clave es antes de que funcione, asegúrese de que la propiedad marcada existe y no se ha eliminado.
fuente
Jbookaccess.prop("checked", data.access != 'private');
Esto ocurre porque usted con la versión más nueva de jquery
attr('checked')
regresa'checked'
mientrasprop('checked')
regresatrue
.fuente
fuente
Establezca la casilla de verificación después de cargar la ventana modal. Creo que está configurando la casilla de verificación antes de cargar la página.
fuente
Sé que esto requiere una solución de Jquery, pero solo quiero señalar que es muy fácil alternar esto en JavaScript simple.
Funcionará en todas las versiones actuales y futuras.
fuente
Recuerde incrementar el atributo id y for respectivamente. Para la casilla de verificación Bootstrap añadida dinámicamente.
fuente