2011-07-26 9 views
6

Tengo una forma de pago que se mostrará una encuesta emergente para preguntar por qué no han comenzado a llenar el formulario después de 5 segundos. Sin embargo, tengo que ser capaz de comprobar si el usuario ha introducido los datos en realidad en contraposición a los datos introducidos por función de llenado automático del navegador (todos los datos rellenados previamente establecidos en el marcado Ignoro específicamente en el javascript o jQuery).¿Cómo puedo determinar si el usuario o el navegador han ingresado datos en un formulario?

En este momento mi solución es tener el setTimeout ejecutar una función que comprueba una variable (verdaderas o falsas) que se establece en false en un .focus jQuery o .Cambiar caso de los tipos de entrada (input, select, textarea) . Sin embargo, dado que el javascript puede cargarse después de que el usuario pueda usar los elementos del formulario, debo verificar si el usuario ingresó los datos antes de que aparezca la encuesta.

¿Es posible diferenciar entre los datos introducidos por el usuario y los datos del navegador introducidos por si las cargas JavaScript una vez que el usuario ha hecho nada a los campos del formulario?

+2

... No recomendaría persiguiendo esto como una característica de interfaz de usuario, esto puede ser personal, pero estaría terriblemente puse a cabo si la página web comenzó a recibir, o apareció para conseguir, de mal humor conmigo porque yo no era' t llenando un formulario lo suficientemente rápido. Sin embargo, es una pregunta interesante, y ** + 1 ** para eso :) –

+2

Diría que vincula su función al evento de pulsación de tecla. en cuanto a si escriben algo antes de que se cargue el js ... es superfluo en ese punto teniendo en cuenta que sus manos están atadas de todos modos. –

+0

En lugar de "¿por qué no has comenzado?" En 5 segundos, ¿qué tal "¿Qué te está llevando tanto tiempo?" después de un minuto más o menos? –

Respuesta

4

Si realmente quiere decir navegador para que no autocompletar en absoluto, se puede utilizar el atributo de autocompletar, pero esto es por desgracia un atributo no válido y por lo tanto no va a validar. Si realmente necesita el código HTML para validar, puede utilizar jQuery para hacer eso para usted:

$(your_form_selector).attr('autocomplete', 'off'); 

Más discusión acerca de autocompletar here

1

¿Qué hay de .keyup caso de la forma?

var isFilledByUser = false; 
$("#input").keyup(function(){ 
    var isFilledByUser = true; 
}); 
0

bien ... esto era algo entretenido, pero estoy totalmente de acuerdo ... esta característica sería tan molesto XD

http://jsfiddle.net/NTvrN/1/

pero hay que ir ... ahora escribe, foo !

Cuestiones relacionadas