¿Cómo puedo marcar marcar/desmarcar evento de <input type="checkbox" />
con jQuery?Catch marcado evento de cambio de una casilla de verificación
Respuesta
<input type="checkbox" id="something" />
$("#something").click(function(){
if($(this).is(':checked')) alert("checked");
});
Editar: Hacer esto no cogerá cuando la casilla de verificación cambia por otras razones que un clic, como usar el teclado. Para evitar este problema, escuche change
en lugar de click
.
Para marcando/desmarcando mediante programación, echar un vistazo a Why isn't my checkbox change event triggered?
document.getElementById ('something'). Checked works, why $ ('# something'). Checked ¿no trabajo? – omg
A su código le falta un párrafo, y realmente debería usar la forma jQuery de obtener el estado de verificación. –
Porque $ ('# algo') devuelve un objeto jQuery no un ElementNode –
utilizar el evento clic para una mejor compatibilidad con MSIE
$(document).ready(function() {
$("input[type=checkbox]").click(function() {
alert("state changed");
});
});
$(document).ready(function(){
checkUncheckAll("#select_all","[name='check_boxes[]']");
});
var NUM_BOXES = 10;
// last checkbox the user clicked
var last = -1;
function check(event) {
// in IE, the event object is a property of the window object
// in Mozilla, event object is passed to event handlers as a parameter
event = event || window.event;
var num = parseInt(/box\[(\d+)\]/.exec(this.name)[1]);
if (event.shiftKey && last != -1) {
var di = num > last ? 1 : -1;
for (var i = last; i != num; i += di)
document.forms.boxes['box[' + i + ']'].checked = true;
}
last = num;
}
function init() {
for (var i = 0; i < NUM_BOXES; i++)
document.forms.boxes['box[' + i + ']'].onclick = check;
}
HTML:
<body onload="init()">
<form name="boxes">
<input name="box[0]" type="checkbox">
<input name="box[1]" type="checkbox">
<input name="box[2]" type="checkbox">
<input name="box[3]" type="checkbox">
<input name="box[4]" type="checkbox">
<input name="box[5]" type="checkbox">
<input name="box[6]" type="checkbox">
<input name="box[7]" type="checkbox">
<input name="box[8]" type="checkbox">
<input name="box[9]" type="checkbox">
</form>
</body>
Hey! Amigo, ¿qué estás haciendo aquí? – omg
Parece una selección de rango (es decir, verifica el primer elemento, mantenga presionada la tecla shift, marque la última, y se marcan todas las que están entre ellas). Sin embargo, esto es mucho más de lo que la pregunta lo requiere. Sin embargo, falta algo de código, como checkUncheckAll(). – joelsand
Utilice el snipp de código siguiente et al .: lograr este
$('#checkAll').click(function(){
$("#checkboxes input").attr('checked','checked');
});
$('#UncheckAll').click(function(){
$("#checkboxes input").attr('checked',false);
});
O usted puede hacer lo mismo con la única casilla de verificación:
$('#checkAll').click(function(e) {
if($('#checkAll').attr('checked') == 'checked') {
$("#checkboxes input").attr('checked','checked');
$('#checkAll').val('off');
} else {
$("#checkboxes input").attr('checked', false);
$('#checkAll').val('on');
}
});
Para demostración: http://jsfiddle.net/creativegala/hTtxe/
El clic afectará una etiqueta si tenemos una conectada a la casilla de entrada?
creo que es mejor usar la función .Cambiar()
<input type="checkbox" id="something" />
$("#something").change(function(){
alert("state changed");
});
para jQuery 1.7+ uso:
$('input[type=checkbox]').on('change', function() {
...
});
En mi experiencia, he tenido que aprovechar currentTarget del evento :
$("#dingus").click(function (event) {
if ($(event.currentTarget).is(':checked')) {
//checkbox is checked
}
});
Este código hace lo que su necesidad:
<input type="checkbox" id="check" >check it</input>
$("#check").change(function(){
if($(this).is(':checked')) {
alert("checked");
}else{
alert("unchecked");
}
});
Además, puede comprobarlo en jsfiddle
- 1. casilla de verificación - notificación de cambio
- 2. jQuery/Javascript: Click evento en una casilla de verificación y el 'marcado' atributo
- 3. ¿Cómo se marca una casilla de verificación sin activar un evento de cambio?
- 4. ¿Por qué el cambio dinámico de una casilla de verificación no activa un evento de cambio de formulario?
- 5. Estado de la casilla de verificación predeterminada: ¿marcado o no marcado?
- 6. Evento de cambio de casilla de verificación eliminada envía el valor anterior
- 7. Necesita un evento de cambio de casilla para responder al cambio del estado comprobado hecho programáticamente
- 8. ¿Cómo desencadenar el evento clic de casilla de verificación incluso si está marcado a través del código de JavaScript?
- 9. Casilla de verificación Grails
- 10. casilla de verificación siempre está "on"
- 11. Marca de verificación en una casilla de verificación
- 12. defecto comprobar una casilla de verificación
- 13. ¿Cómo desactivo una casilla de verificación?
- 14. FDF: cómo marcar una casilla de verificación?
- 15. Agregue una casilla de verificación "Recordarme"
- 16. ¿Cómo agotar una casilla de verificación html?
- 17. Edición detección de estado casilla de verificación en DataGridView
- 18. Cambio de la etiqueta de una casilla de verificación jQuery Mobile
- 19. Detectando un cambio en el botón de opción/estado de casilla de verificación
- 20. jsTree Ocultar casilla de verificación
- 21. casilla de verificación 'marcado' en ListView se restaura después de desplazarse
- 22. JQuery obtener el valor de la casilla de verificación solo si está marcado
- 23. Android Casilla de verificación Grupo
- 24. Cómo obtener datetimepicker C# winform marcado/desmarcado evento
- 25. Casilla de verificación en ExpandableListView
- 26. QT - casilla de verificación desmarque
- 27. casilla de verificación como alternativa al captcha?
- 28. Cambiar Html.DisplayFor casilla de verificación booleana MVC
- 29. ¿Cómo recibir un evento en la casilla de verificación de Android? ¿Cambiar?
- 30. personalizar la casilla de verificación preferencia
Si está utilizando una relativamente nueva versión de jQuery, me gustaría utilizar el .on ('cambio', function() {...}) como se menciona en La respuesta de @ Daniel de Leon a continuación. Una ventaja, el oyente de eventos "activado" se vinculará a html generado dinámicamente. – BLang