Foros del Web » Programando para Internet » Javascript »

Formulario DNI

Estas en el tema de Formulario DNI en el foro de Javascript en Foros del Web. Hola a todos Soy una novatilla en esto del Javascript y estoy un poco perdida. Practicando ejercicios me he topado con el típico ejercicio de ...
  #1 (permalink)  
Antiguo 11/11/2015, 14:03
 
Fecha de Ingreso: noviembre-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Formulario DNI

Hola a todos

Soy una novatilla en esto del Javascript y estoy un poco perdida. Practicando ejercicios me he topado con el típico ejercicio de cálculo de la letra del DNI (conseguido) y validación del formulario.


El tema es el siguiente, ¿hay alguna manera de que a medida que se van escribiendo los números, aparezca mensajes que avisen cuantos números quedan por introducir?

Otra duda, me gustaría que el formulario cambie su color de fondo tanto si el envio es correcto como si es erróneo ¿Cómo se haría?

Muchas gracias
  #2 (permalink)  
Antiguo 11/11/2015, 14:52
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Formulario DNI

Hola

Para el primer tema, si haces una búsqueda en el buscador de este foro con los términos "contar caracteres", encontrarás cientos de resultados.

En cuanto al segundo tema, se trata de condicionar el resultado final de la validación y obrar arreglo a esta, Si es false cambia el background de la etiqueta <form>. Si finaliza con true, se enviará el formulario y por ende no habrá que cambiar el background

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 11/11/2015, 15:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Formulario DNI

Bienvenida a Foros del Web.

Lo primero puedes conseguirlo mediante un simple cálculo: la resta del número máximo de caracteres que puede poseer el DNI menos la cantidad de caracteres ingresados por el usuario.

¿Cómo logras obtener el segundo dato?

El elemento que estés utilizando para el ingreso de datos —que supongo se trata de un <input> de tipo text—, posee una propiedad llamada value. Dicha propiedad devuelve el valor contenido en el elemento como una cadena de texto. Todas las cadenas de texto poseen una propiedad llamada length con la cual puedes obtener el número de caracteres que componen a la cadena en cuestión.

Lo único que tendrías que hacer es, primero, definir el número máximo de caracteres que puede tener el dato a ingresar, luego, obtener la cantidad de caracteres ingresados por cada vez que ocurra alguno de los eventos del teclado, por ejemplo, el evento keypress, el cual se produce cuando se ha pulsado la tecla pero aún no se ha levantado el dedo de la misma (la tecla físicamente aún no retorna a su posición original). Bastará con que registres dicho evento a la caja de texto y ejecutes una función cuando este se produzca. En dicha función, tomas a los valores anteriormente mencionados y los restas. Dicho resultado lo puedes mostrar en algún elemento en línea, por ejemplo, un <label>. Para establecer el valor como contenido del elemento, necesitas utilizar la propiedad innerHTML (para compatibilidad, échale un vistazo a esto).

Para lograr lo último que mencionaste, primero debes saber qué son los estilos en el diseño web. Una vez que entiendas eso, sabrás cómo cambiar la apariencia tanto del formulario como de cualquier otro elemento del documento.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 13/11/2015, 11:56
 
Fecha de Ingreso: noviembre-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Respuesta: Formulario DNI

Muchas gracias por las respuestas. Lo miraré con calma estos días ;)

Etiquetas: dni, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:37.