Escribí este fragmento de javascript/jQuery para cambiar una casilla de verificación. http://jsfiddle.net/johnhoffman/crF93/¿Por qué el cambio dinámico de una casilla de verificación no activa un evento de cambio de formulario?
Javascript
$(function() {
$("a").click(function() {
if ($("input[type='checkbox']").attr('checked') == "checked")
$("input[type='checkbox']").removeAttr('checked');
else
$("input[type='checkbox']").attr('checked', 'checked');
return false;
});
$("input[type='checkbox']").change(function(){
console.log("Checkbox changed.");
});
});
HTML
<input type="checkbox" />
<a href="#">Change CheckBox</a>
Curiosamente, haga clic en el enlace altera el cuadro de texto, pero no activa el evento de cambio de forma que llama a la función que registra un mensaje en Chrome Consola de desarrollador web. ¿Por qué? ¿Cómo hago para que haga eso?
[ "El evento de cambio se produce cuando un control pierde el foco de entrada y su valor se ha modificado desde ganando enfoque. "] (http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-htmlevents) Sin cambio de enfoque significa que no hay evento de cambio. –
posible duplicado de [evento onchange no disparar cuando el cambio proviene de otra función] (http: // stackoverflow.com/questions/7055729/onchange-event-not-fire-when-the-change-come-from-antoher-function) –