2012-02-09 18 views
5

Estoy intentando capturar cuando se cambia el valor de un campo de entrada de texto. Estoy usando:jquery campo de entrada cambiar incluso cuando el valor se cambia a través de jquery

$("input[name=color]").change(function(){ 

Esto funciona si escribo el nuevo valor directamente. Sin embargo, el valor del campo de entrada se cambia por jquery. Hay varios de estos campos, y necesito saber cuándo ha cambiado alguno. ¿Hay alguna forma de detectar este cambio?

Disculpa, no estaba clara. Yo no soy el que está cambiando el valor. Es un complemento que preferiría no modificar en caso de que necesite transferirlo a otro proyecto.

trabajo en torno

Ok, por lo que no puede hacer lo que quería hacer, pero aquí es una solución temporal. Acabo de hacer un intervalo y cambié mi evento change a un evento each.

setInterval(function(){ 
    $("input[name=color]").each(function(){ my code }) 
},100); 
+0

cómo están cambiando con jQuery. Me refiero al código que lo está haciendo. ¿No puedes hacer algo al mismo tiempo que el código lo está cambiando? – Henesnarfel

+0

Ojalá pudiera, pero es un plugin de selector de color que está cambiando los valores. Solo quiero aplicar los valores a medida que cambian. – James

+0

esta solución alternativa, ¿no está seguro si realmente aumenta el tiempo de carga de la página? – redcoder

Respuesta

11

No hay manera de detectar los cambios realizados mediante programación.

Sin embargo, puede activar un evento change cada vez que modifique su valor.

$("input[name=color]").val("newValue").change(); 
+1

Voy a marcar esto como correcto ya que responde la pregunta. Pero también estoy publicando mi trabajo en mi código si está interesado. – James

2

Cuando cambie el valor por jQuery que puede disparar el evento de cambio con jQuery después

$("input[name=color]").val('someValue').trigger('change'); 
+0

Gracias, pero no estaba controlando el otro jquery. Sin embargo, encontré una solución. – James

1

No, onchange evento no se activará cuando el valor se cambia el uso de JavaScript. Alternativamente, puede llamar al evento onchange cuando cambie el valor.

+0

Gracias, pero no estaba controlando el otro jquery. Sin embargo, encontré una solución. – James

0

Una opción es realizar el seguimiento del valor fuera del alcance de su oyente

function foo() { 
    var value = null; 
    $("select#thingy").on("change", function (e) { 
    let p = $(this).children("#choose-me").val(); 
    value = value === p ? null : p; 
    $(this).val(value); 
    }); 
} 

$(function() { 
    foo(); 
}) 
Cuestiones relacionadas