2011-02-08 44 views

Respuesta

7

Una solución que he estado usando ocasionalmente es comprobar si el valor del campo/entrada/selección difiere de su valor por defecto. defaultValue sería el valor que originalmente estaba en el marcado y el valor es el valor actual, también conocido como valor seleccionado o ingresado. Esto probablemente difiera aunque la forma esté autopoblada.

Si desea desactivar completamente la función de autocompletar, sería aconsejable agregar autocompletar = "off" en los campos que están directamente conectados a su lógica.

+0

También probé una solución similar, pero el El problema es que configuro el texto en "" y luego la autocompletación por Chrome ocurre volviendo a poner mis credenciales allí ... – Revious

+0

Chrome ahora anula el autocompletado y decidió que es un UX mejor para completar automáticamente todo: - \ – webdevinci

0

¿Ha intentado utilizar el evento onpropertychanged en lugar de onchange? Eso es solo para IE y es la solución recomendada en MSDN.

+0

lo haría, pero al ser un sitio visitado por cientos de miles de personas a través de todas las formas concebibles navegador, no creo que funcionaría muy bien. –

+0

Esto se ve similar: http://stackoverflow.com/questions/343192/why-does-the-javascript-onchange-event-not-fire-if-autocomplete-is-on – Satyajit

0

Por si alguien todavía está buscando una solución (tal como lo era hoy), para escuchar un cambio de autocompletar del navegador, he aquí un método jquery personalizado que he creado, solo para simplificar el proceso al agregar un oyente de cambio a una entrada:

$.fn.allchange = function (callback) { 
     var me = this; 
     var last = ""; 
     var infunc = function() { 
      var text = $(me).val(); 
      if (text != last) { 
       last = text; 
       callback(); 
      } 
      setTimeout(infunc, 100); 
     } 
     setTimeout(infunc, 100); 
    }; 

Se le puede llamar así:

$("#myInput").allchange(function() { 
    alert("change!"); 
}); 
+0

Si bien esta solución funcionará, es costoso en ciclos de CPU. [Este] (http://stackoverflow.com/a/8548572/1057527) es una mejor solución. – machineaddict

Cuestiones relacionadas