Foros del Web » Programando para Internet » Javascript »

Problema al cambiar de color un input

Estas en el tema de Problema al cambiar de color un input en el foro de Javascript en Foros del Web. Hola a todos estoy liado con un formulario en el que al validar los datos si estos no son correctos haga que los cuadros de ...
  #1 (permalink)  
Antiguo 01/06/2012, 12:34
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Problema al cambiar de color un input

Hola a todos estoy liado con un formulario en el que al validar los datos si estos no son correctos haga que los cuadros de texto de este cambien de color y para probarlo hice una pequeña prueba para luego hacerlo mas grande y ahora viene el problema, en el único navegador que me sale es en chrome y solo menos de un segundo, el color solo llega a verse un parpadeo.

El código es este:
index.html
Código:
<html>
<head>
<title>Prueba</title>
    <script type="text/javascript">
        function prueba()
        {
            var ina=document.getElementById('a').value;
          
            if(ina=='a')
            {
               a.style.backgroundColor = 999999;
            }
        }
        
    </script>
</head>
<body>
<form action="index.html" method="post" onSubmit="prueba();">
    <input type="text" id="a">
    <input type="submit" value="Enviar">

</form>
</body>

</html>
Lo que intento hacer es que si escribes una a se cambie de color, cosa que hace solo un parpadeo ¿por que me hace eso?

Un saludo
  #2 (permalink)  
Antiguo 01/06/2012, 14:14
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

se está enviando el formulario. prueba ahora
Cita:
a.style.backgroundColor = 999999;
return false;

onsubmit="return prueba();">
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 01/06/2012, 14:36
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

Era eso muchisisimas gracias por la ayuda
  #4 (permalink)  
Antiguo 02/06/2012, 05:15
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

acabo de verle un fallo, si llamas a una función que lo hace en otra función vuelve a pasar
pongo el código y sabréis a lo que me refiero

Código:
function experimento()
{
var ina=document.getElementById('a').value;
    var inb=document.getElementById('b').value;
    if(ina=='a')
    {
        a.style.backgroundColor = 999999;
        return false;
       
    }
}
function prueba()
{
    experimento();
}
La cosa de hacerlo con una función que llame a otra función es para poder validar un formulario que valida cada campo con una función
  #5 (permalink)  
Antiguo 02/06/2012, 08:57
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

no me había fijado en esta línea
Cita:
a.style.backgroundColor = 999999;
aquí tienes dos errores
  • un elemento se puede referenciar por su id o name por que son de ámbito global. pero no todos los navegadores lo admiten. lo correcto es usar el estandar document.getElementById()
  • el color que le asignas es hexadecimal y de nuevo el estandar dice que ha de ir precedido por (#) y entrecomillado

Cita:
Iniciado por JaviCN Ver Mensaje
La cosa de hacerlo con una función que llame a otra función es para poder validar un formulario que valida cada campo con una función
no veo la razón, pero bueno. añade esto
Cita:
return experimento();
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #6 (permalink)  
Antiguo 02/06/2012, 09:33
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

Por ahora funciona en el pequeño, probare en el grande, pero es casi seguro que funcionara.

Muchísimas gracias de nuevo
  #7 (permalink)  
Antiguo 02/06/2012, 13:42
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

El problema se soluciona si pongo una sola función con el return, pero sigue al llamar a mas de 2 funciones, me explico

si pongo esto:

Código:
return experimento();
return experimento2();
solo ejecuta experimento()
y si pongo esto:

Código:
return experimento()+experimento2();
me ejecuta las 2 pero pasa como antes, que solo esta un parpadeo
  #8 (permalink)  
Antiguo 03/06/2012, 07:27
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

al usar mas de una función, a estas has de añadirle return true si no cumple con la condición. por otro lado el operador que has de usar es (&)
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #9 (permalink)  
Antiguo 03/06/2012, 08:07
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

Cita:
Iniciado por IsaBelM Ver Mensaje
al usar mas de una función, a estas has de añadirle return true si no cumple con la condición. por otro lado el operador que has de usar es (&)
Te refieres a

Código:
return experimento() & experimento2();
si es asi no funciona
  #10 (permalink)  
Antiguo 03/06/2012, 14:13
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

y has usado else??
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #11 (permalink)  
Antiguo 03/06/2012, 14:30
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

un else donde?
  #12 (permalink)  
Antiguo 03/06/2012, 14:41
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

como que donde?? si no se cumple la condición tendrás que devolver true
Cita:
if(concidion) return false;
else return true;
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #13 (permalink)  
Antiguo 03/06/2012, 14:43
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

Cita:
Iniciado por IsaBelM Ver Mensaje
como que donde?? si no se cumple la condición tendrás que devolver true
acabo de liarme bastante, que tiene que ver eso con la llamada en cadena de 2 funciones?
  #14 (permalink)  
Antiguo 03/06/2012, 15:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

de lo que te estoy hablando es algo básico
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #15 (permalink)  
Antiguo 03/06/2012, 16:27
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

Un if se usarlo pero lo que no entiendo como podría usarlo para que 2 funciones se ejecuten correctamente

Código:
function experimento()
{
	var ina=document.getElementById('a').value;
    
    if(ina=='a')
   {
        a.style.backgroundColor = '#999999';
		
        return true;
       
    }
    else
    {
        return false;
    }
}
function experimento2()
{
	var inb=document.getElementById('b').value;
    if(inb=='a')
    {
	b.style.backgroundColor = '#999999';
	return true;
    }
    else
    {
        return false;
    }
}
function prueba()
{
    return experimento() + experimento2();
}
en prueba() me refiero
  #16 (permalink)  
Antiguo 03/06/2012, 16:34
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

quiero pensar que estás algo desbordado al no lograr lo que pretendes, puesto que ya te he explicado lo que has de hacer en varias ocasiones. pero como si escucharas llover

Cita:
function experimento()
{
var ina=document.getElementById('a').value;

if(ina=='a')
{
document.getElementById('a').style.backgroundColor = '#999999';

return true;

}
else
{
return false;
}
}
function experimento2()
{
var inb=document.getElementById('b').value;
if(inb=='a')
{
document.getElementById('b').style.backgroundColor = '#999999';
return true;
}
else
{
return false;
}
}
function prueba()
{
return experimento() & experimento2();
}
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #17 (permalink)  
Antiguo 03/06/2012, 16:57
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

no lo entendí bien de un principio por que creo que me pasa como tu dices, que estoy desbordado al no conseguir una cosa tan sencilla, pero la cosa es que aun con el código que me pusiste sigue pasando lo mismo que al principio, es decir, que el color del input sigue durando el tiempo de un parpadeo y debería de mantenerse
  #18 (permalink)  
Antiguo 03/06/2012, 17:22
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

algo de culpa tengo yo. pero ya estoy algo cruzada con este tema
Cita:
function experimento()
{
var ina=document.getElementById('a').value;

if(ina=='a')
{
document.getElementById('a').style.backgroundColor = '#999999';


return false;
}
else
{
return true;
}
}
function experimento2()
{
var inb=document.getElementById('b').value;
if(inb=='a')
{
document.getElementById('b').style.backgroundColor = '#999999';
return false;
}
else
{
return true;
}
}
function prueba()
{
return experimento() && experimento2();
}
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #19 (permalink)  
Antiguo 03/06/2012, 17:34
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

No pasa nada la culpa la tengo yo por que soy un cansino y mi agobio tiene la culpa de todo, el código va a trozos es decir, ahora solo funciona 1 solo, solo funcionan los 2 si haces que se coloreen uno a uno
  #20 (permalink)  
Antiguo 03/06/2012, 18:06
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

Cita:
function experimento()
{
var ina=document.getElementById('a').value;

if(ina=='a')
{
document.getElementById('a').style.backgroundColor = '#999999';


return false;
}
else
{
document.getElementById('a').style.backgroundColor = '#fff';
return true;
}
}
function experimento2()
{
var inb=document.getElementById('b').value;
if(inb=='a')
{
document.getElementById('b').style.backgroundColor = '#999999';
return false;
}
else
{
document.getElementById('a').style.backgroundColor = '#fff';
return true;
}
}
function prueba()
{
var retornar1 = experimento();
var retornar2 = experimento2();
return retornar1 && retornar2;
}
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #21 (permalink)  
Antiguo 03/06/2012, 18:10
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

Ahora se quedan pero solo se colorean si haces que se coloreen los 2 al mismo tiempo
  #22 (permalink)  
Antiguo 04/06/2012, 05:38
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema al cambiar de color un input

fue un pequeñisimo error que dejé propósito para comprobar si eres de los que esperan a que le den un código, y si funciona como quiere si no funciona como quiere, no se plantea estudiarlo e intentar modificalrlo para adaptarlo a sus necesidades

mi teoría ha sido ratificada aunque ya lo sospechaba
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #23 (permalink)  
Antiguo 04/06/2012, 06:49
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

Cita:
Iniciado por IsaBelM Ver Mensaje
fue un pequeñisimo error que dejé propósito para comprobar si eres de los que esperan a que le den un código, y si funciona como quiere si no funciona como quiere, no se plantea estudiarlo e intentar modificalrlo para adaptarlo a sus necesidades

mi teoría ha sido ratificada aunque ya lo sospechaba
intentar lo intente pero no mucho la verdad, en javascript ando muy pegado
  #24 (permalink)  
Antiguo 04/06/2012, 06:55
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema al cambiar de color un input

Cita:
Iniciado por JaviCN Ver Mensaje
intentar lo intente pero no mucho la verdad, en javascript ando muy pegado
Ya di con el estoy cuajado

Código:
function experimento()
{
    var ina=document.getElementById('a').value;

    if(ina=='a')
    {
        document.getElementById('a').style.backgroundColor = '#999999';


        return false;
    }
    else
    {
        document.getElementById('a').style.backgroundColor = '#fff';
        return true;
    }
}
function experimento2()
{
    var inb=document.getElementById('b').value;
    if(inb=='a')
    {
        document.getElementById('b').style.backgroundColor = '#999999';
        return false;
    }
    else
    {
        document.getElementById('b').style.backgroundColor = '#fff';
        return true;
    }
}
function prueba()
{
    var retornar1 = experimento();
    var retornar2 = experimento2();
    return retornar1 && retornar2;

}

Etiquetas: color, formulario, html, input
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 17:59.