Foros del Web » Programando para Internet » Javascript »

Cambiar color de un input cuando hay error

Estas en el tema de Cambiar color de un input cuando hay error en el foro de Javascript en Foros del Web. Hola a todos, Quiero validar un correo y funciona bien, si el correo no es valido me devuelve a la misma pagina, de esta manera ...
  #1 (permalink)  
Antiguo 10/03/2014, 18:16
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Cambiar color de un input cuando hay error

Hola a todos,
Quiero validar un correo y funciona bien, si el correo no es valido me devuelve a la misma pagina, de esta manera

Código PHP:
Ver original
  1. <?
  2. $mail=$_POST['cliemail'];
  3.  
  4.  
  5.     if(($mail!= "")&&(filter_var($mail, FILTER_VALIDATE_EMAIL))){
  6.      //echo "email valido ";
  7.     }else{
  8.  
  9.         //echo "mail NO valñido";    
  10.         header("Location:01.php");
  11.        
  12. }
  13. ?>

el input con nombre email tiene su CSS con un color de borde azul, y lo llamo con la classe: asi

Código HTML:
Ver original
  1. <p class="tex1">Cliente E-mail</p>
  2.   <input type="email" name="cliemail"  id="email" maxlength="30" size="30" />

Lo que quiero es en el header mandar algo para que el borde del input cambie a rojo

header("Location:01.php?ACA QUE MANDO? ");

Bueno espero que se entienda saludos a todos
fede
  #2 (permalink)  
Antiguo 10/03/2014, 21:31
 
Fecha de Ingreso: octubre-2013
Mensajes: 9
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Cambiar color de un input cuando hay error

Si lo quieres hacer con js, agrégale una clase css con un .addClass(class); cuando sea incorrecto o directamente con .css('border-color'.'red');

saludos
  #3 (permalink)  
Antiguo 10/03/2014, 22:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar color de un input cuando hay error

Se me ocurre que envíes un valor así:

Código PHP:
Ver original
  1. header("Location:01.php?foo=baz");

Y en el archivo 01.php:

Código Javascript:
Ver original
  1. var url = document.URL,
  2.     foo = url.substr(url.indexOf('=') + 1);
  3.  
  4. document.getElementById("email").style.border = ".1em " + (foo == 'baz' ? 'red' : 'blue') + " solid";

Como envías el valor por la URL, solamente necesitas ubicarlo y verificar su existencia, de acuerdo a ello, asignas el color rojo o azul al borde de la caja de texto.

Saludos
__________________
«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

Última edición por Alexis88; 10/03/2014 a las 23:02
  #4 (permalink)  
Antiguo 11/03/2014, 06:06
 
Fecha de Ingreso: diciembre-2013
Ubicación: España
Mensajes: 21
Antigüedad: 10 años, 4 meses
Puntos: 2
Respuesta: Cambiar color de un input cuando hay error

Mi recomendación sería primero añadir una validación de JavaScript con una expresión regular para saber si el correo es válido, con eso se cubriría la mayor parte de los casos. En caso de que no fuera válido seguir el consejo de rauldev.

Yo uso una validación similar que comprueba y al darle a enviar revisa el correo, si no es correcto o está vacío envía un alert y en caso contrario envía el formulario:

Código Java:
Ver original
  1. function validate(){       
  2.     var email = document.getElementById("email").value;
  3.     if (email == null || email.length == 0){
  4.         alert("Introduzca un email");
  5.         return false;
  6.     }else if (!(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/.test(email))){
  7.         alert("La dirección de email es incorrecta");
  8.         return false
  9.     }
  10.  
  11.     //alert("Datos correctos.");
  12.     return true;
  13. }

Igualmente, mantén la validación por php por si algún listillo le da por desactivar JavaScript, pero la mayoría de usuarios habituales con el check por JavaScript sobrados y te ahorras tener que estar recargando la página para hacer la comprobación.
  #5 (permalink)  
Antiguo 11/03/2014, 07:13
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Respuesta: Cambiar color de un input cuando hay error

Hola esta muy bueno lo de Alexis88, no sabia que se podia mandar variables de php y tomarlas con javascript.. excelente...!!!!

por otro lado lo de valifar el mail lo hice con html5, <input type="email".. no se si sirve para todos los navegadores por eso tambien lo hice en PHP.

Vi mucho codigo ShinFDuran, me valida el formulario pero pasa, osea me sale el correo es invalido pero pasa a la otra pagina..

<form action="02.php" method="post" onsubmit = validate()>
<input type="email" name="email" id="email">
<input type="submit" name "submit" value="guardar">

en este fomulario como llamo a la funcion ??

se agradece todos los comentarios muchas gracias
saludos
fede
  #6 (permalink)  
Antiguo 11/03/2014, 09:17
 
Fecha de Ingreso: diciembre-2013
Ubicación: España
Mensajes: 21
Antigüedad: 10 años, 4 meses
Puntos: 2
Respuesta: Cambiar color de un input cuando hay error

Así:

Código HTML:
Ver original
  1. <form action="contacto2.php" method=post  onsubmit="return validate()">

A mi me funciona tanto en Firefox como en Chrome, así que en teoría salvo IE y sus dichosas versiones debería funcionar bien en todo.

Desde mi punto de vista, lo ideal es hacerlo inicialmente de esa forma, así evitamos tener que recargar la página, es todo un proceso más fluido. Igual, en el código me falta un ; después del segundo false, pero igual va el código y evita enviar los datos mientras no sean correctos.
  #7 (permalink)  
Antiguo 11/03/2014, 17:34
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Respuesta: Cambiar color de un input cuando hay error

Hola, ShinFDuran, muchas gracias por tu repuesta, si me han dicho el tema de no madar datos cuando no son correctos... pero como esconder un header.... algunas cosas las hago con fomulario mediante post, asi no se ve nada.. pero el header es necesario pero no se si existe forma de hacerlo de otra manera ... en fin
Mientras tanto se agradece el codigo si sirvio

Muchas gracias
saludos
fede
  #8 (permalink)  
Antiguo 11/03/2014, 19:57
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar color de un input cuando hay error

Podrías enviar los datos del formulario a un archivo externo que los procese y devuelva una respuesta, en base a esa respuesta, envías los datos o muestras una alerta. Para que no se recargue la página, te conviene hacerlo mediante una petición asíncrona (Ajax).

Saludos
__________________
«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
  #9 (permalink)  
Antiguo 12/03/2014, 14:24
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Respuesta: Cambiar color de un input cuando hay error

Hola estoy entrando el el mundo Javascript ,Ajax, DOM, etc.. me cuesta y mucho, he buscado manuales para de cero cero" y no hay caso no encuentro.

saludos a todos
fede
  #10 (permalink)  
Antiguo 13/03/2014, 09:31
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Cambiar color de un input cuando hay error

Cita:
Iniciado por fedefrankk Ver Mensaje
Hola estoy entrando el el mundo Javascript ,Ajax, DOM, etc.. me cuesta y mucho, he buscado manuales para de cero cero" y no hay caso no encuentro.

saludos a todos
fede
Corrijo: No sabes buscar
  #11 (permalink)  
Antiguo 13/03/2014, 17:20
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Respuesta: Cambiar color de un input cuando hay error

Hola PHPeros, como va, si alomejor es no saber buscar, tenes alguna sugerencia o pagina que me puedas pasar?
Gracias
saludos
fede

Etiquetas: color, funcion, input, php
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 10:52.