remove event change jquery input hidden

jquery - change - evento de cambio de entrada oculto



onclick jquery (2)

¿Cómo puedo detectar un cambio en el valor de una entrada oculta? Ya he probado estos enfoques sin éxito:

$(''#id_inpout'').live(''change'',function () { var id_el = $(this).attr(''id''); alert(id_el); });

y

$(''#id_inpout'').change(function () { var id_el = $(this).attr(''id''); alert(id_el); });

y

$(''#id_inpout'').bind(''change'',function () { var id_el = $(this).attr(''id''); alert(id_el); });


Como se dijo por duplicado, y como ha visto, los cambios realizados en javascript no desencadenan el evento de change .

Como no encontré respuestas aceptables en los duplicados (es decir, las respuestas no implican un cambio en la forma en que se establece el valor oculto), y suponiendo que realmente lo necesita (es decir, no puede llamar a su función cuando cambia el oculto input val), esto es lo que puedes hacer:

function survey(selector, callback) { var input = $(selector); var oldvalue = input.val(); setInterval(function(){ if (input.val()!=oldvalue){ oldvalue = input.val(); callback(); } }, 100); } survey(''#id_inpout'', function(){console.log(''changed'')});

Pero preferiría utilizar soluciones más directas (es decir, llamar a una función cuando cambie el valor de entrada oculto). Esta función puede ser un simple despachador de eventos propio (básicamente un objeto que envuelve una lista de funciones para llamar cuando se llama).

EDITAR: Ahora es 2015 y para las personas que se preguntan, no, ninguno de los avances recientes del mundo de la web resuelve ese problema. Los observadores de mutaciones no observan la propiedad de valor de la entrada (en realidad no es el DOM) y el observador de objetos ES6 tampoco tiene poder para esos objetos nativos.


También puede usar el trigger(''change'') después de asignar un nuevo valor a la entrada oculta:

$(''#hidden_input'').val(''new_value'').trigger(''change'');