Ver Mensaje Individual
  #10 (permalink)  
Antiguo 20/06/2013, 09:27
Avatar de kikerrobles
kikerrobles
 
Fecha de Ingreso: mayo-2013
Ubicación: Oviedo
Mensajes: 17
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: No sé como ejecutar código despues una función keyup

Perdona la demora, empecé ayer a escribir y hasta ahora no he podido concluir :)

Me gustan las funciones simplificadas y reutilizables, de ahí que ciertas comprobaciones las quisiera hacer fuera de la función o funciones a las que llamo.

Lo que estoy haciendo es bastante sencillo, es para el registro de usuarios. Inicialmente tengo tres campos visibles: Usuario, Email y Contraseña

Con cada pulsación de tecla en cada campo compruebo si el campo cumple con la expresión regular correspondiente y en el caso del Usuario y el Email si ya existe o no en la base de datos.

Hasta ahí bien.

Pero luego, si esos campos son todos válidos, quiero que me muestre el resto del formulario sin necesidad de pulsar un botón. Lo he conseguido sin problemas metiendo una función que virifica los resulados dentro de la función de validación, pero me gustaría no haber tenido que meter funciones adicionales pues ya no me sirve para reutilizarlo y queda menos estructurado y claro. Además me ha obligado a usar ajax síncrono.

De momento, dado que voy mal de tiempo lo dejaré así. Ya funciona mostrando más formulario si todo es correcto y en caso de que vuelvan atrás y cambién algún resultado se vuelve a ocultar hasta tener los datos básicos correctos.

Para poder validar, como no podía poner variables que me perduraran, lo que actualmente hago es comprobar que en el div donde muestro "Válido" o "Inválido" aparezca Válido en cada uno de los campos. Menos elegante pero funciona.

No me parezca que tenga solución (usando variables) porque al final siempre dependo de un evento para saber cuando validar.

El código es básicamente este:
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.                
  3. //valido los campos
  4.                 validateAll('inputUserName','divResultUserName',user_regexp,result_user,"user");
  5. validateAll("inputPass","divResultPass",pass_regexp,result_pass,"pass");
  6. validateAll('inputEmail','divResultEmail',email_regexp,result_email,"email");
  7. validateAll('inputCode','divResultCode','',result_code,"code");
  8.  
  9. //activo la posibilidad de mostrar la contraseña, en registro.css se define como background bombilla_cara_apagada.png
  10. showHidePass("showPass","inputPass","bombilla_cara_apagada.png","bombilla_cara_encendida.png");
  11.  
  12. //Valido el código que el usuario recibe por email, validando así el correo y sirciendo a la vez de captcha             getCode("buttonCode","inputEmail","inputUserName","divResultCode");
  13.  
  14. //Esta función es la que tengo incluida en la "validateAll()", al final de la misma, en vez de poder llamarla desde aquí, pero como te comento, también quedaría dependiente de un evento para que se ejecute en cada camvio producido en uno de los campos
  15. //veryfyAllOutputs("divCode");
  16.                
  17. });

Así que te agradezco las molestias. Andaré por aquí respondiendo y preguntando más cosillas seguro. Hace mucho que no tengo que encargarme solo desde el diseño a la depuración en un proyecto tan grande y me está costando un poco ponerme al día en todos los lenguajes a la vez.