utiliza - que es javascript yahoo
Autocompletador del navegador y eventos activados por Javascript (5)
Uno de nuestros usuarios acaba de mencionar el hecho de que sus navegadores Autofill no hacen que se activen los eventos de JS onChange; Esto causa un problema con el registro de usuario para nosotros.
¿Es esto por diseño? ¿Hay una manera de evitarlo?
¿Ha intentado utilizar el evento onpropertychanged en lugar de onchange? Sin embargo, eso es solo para IE y es la solución recomendada en MSDN.
Aquí hay una solución bastante buena que hace algo similar a lo que describe jishi:
Se actualizó el enlace roto con el enlace de Wayback Machine.
En caso de que alguien todavía esté buscando una solución (tal como lo estaba hoy) para escuchar un cambio de autocompletar del navegador, aquí hay un método de jquery personalizado que he creado, solo para simplificar el proceso al agregar un detector de cambios 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);
};
Puedes llamarlo así:
$("#myInput").allchange(function () {
alert("change!");
});
Si desea obtener el comportamiento de autocompletar pero cambiar el estilo, quizás pueda hacer algo como esto ( jQuery
):
$(window).load(function(){
if($(''input:-webkit-autofill'')){
$(''input:-webkit-autofill'').each(function(){
//put your conditions here
});
// RE-INITIALIZE VARIABLES HERE IF YOU SET JQUERY OBJECT''S TO VAR FOR FASTER PROCESSING
}});
Una solución que he estado usando ocasionalmente es verificar si el valor del campo / entrada / selección difiere de su valor predeterminado. defaultValue sería el valor que estaba originalmente en el marcado, y valor es el valor actual, también conocido como valor seleccionado o ingresado. Esto probablemente diferiría aunque la forma fuera autopopulada.
Si desea desactivar la función de autocompletar por completo, puede ser conveniente agregar autocomplete = "off" en los campos que están directamente conectados a su lógica.