JavaScript - Quitar mensajes de error cuando se corrige

 
Vista:
sin imagen de perfil

Quitar mensajes de error cuando se corrige

Publicado por Victor (13 intervenciones) el 19/12/2013 22:34:49
Buenas!!

Tengo una pequeña duda...a ver si alguien me echa una mano...gracias por adelantado.

El siguiente script valida un formulario. Emite los mensajes de error correspondientes y si uno de los campos se corrige , el error desaparece pero permanece el resto de errores que no se han corregido (el formulario no se envía). Todo funciona correctamente salvo en el último campo. Es decir, si se corrige (es decir, no se deja el input vacío) pero sigue habiendo errores en otros campos del formulario, a mi código le da igual y lo envía... Sólo me sucede con el último input, el resto no da problemas

Mil gracias otra vez,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<script>
function enviar()
{
 
<!--recogida de variables-->
 
var name = document.getElementById("nombre").value;
var user = document.getElementById("usuario").value;
var email = document.getElementById("email").value;
var pass1 = document.getElementById("pass1").value;
var pass2 = document.getElementById("pass2").value;
var posarroba = email.indexOf("@");
var pospunto = email.lastIndexOf(".");
if (name==null || name == "")
{
document.getElementById("error").style.visibility = 'visible';
    }
   else {document.getElementById("error").style.visibility = 'hidden';}
 
if (user==null || user == "")
{
document.getElementById("error1").style.visibility = 'visible';
 
}
else {document.getElementById("error1").style.visibility = 'hidden';}
 
if (posarroba<1 || pospunto<posarroba+2 || pospunto+2>=email.length)
{
document.getElementById("error2").style.visibility = 'visible';
}
else {document.getElementById("error2").style.visibility = 'hidden';}
if (pass1.length <= 5)
{
document.getElementById("error3").style.visibility = 'visible';
}
else {document.getElementById("error3").style.visibility = 'hidden';}
if (pass2==null || pass2 == "")
{
document.getElementById("error4").style.visibility = 'visible';
return false;
}
else {document.getElementById("error4").style.visibility = 'hidden';}
}
</script>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Quitar mensajes de error cuando se corrige

Publicado por xve (2100 intervenciones) el 20/12/2013 08:15:33
Hola Victor, yo lo haria con una variable, de la manera que lo tienes, únicamente no envía el formulario si pass2==null o si pass2 == ""

Algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<script>
function enviar()
{
    var name = document.getElementById("nombre").value;
    var user = document.getElementById("usuario").value;
    var email = document.getElementById("email").value;
    var pass1 = document.getElementById("pass1").value;
    var pass2 = document.getElementById("pass2").value;
    var posarroba = email.indexOf("@");
    var pospunto = email.lastIndexOf(".");
    var error=false;
    if (name==null || name == "")
    {
        error=true;
        document.getElementById("error").style.visibility = 'visible';
    }else{
        document.getElementById("error").style.visibility = 'hidden';
    }
    if (user==null || user == "")
    {
        error=true;
        document.getElementById("error1").style.visibility = 'visible';
    }else{
        document.getElementById("error1").style.visibility = 'hidden';
    }
    if (posarroba<1 || pospunto<posarroba+2 || pospunto+2>=email.length)
    {
        error=true;
        document.getElementById("error2").style.visibility = 'visible';
    }else{
        document.getElementById("error2").style.visibility = 'hidden';
    }
    if (pass1.length <= 5)
    {
        error=true;
        document.getElementById("error3").style.visibility = 'visible';
    }else{
        document.getElementById("error3").style.visibility = 'hidden';
    }
    if (pass2==null || pass2 == "")
    {
        error=true;
        document.getElementById("error4").style.visibility = 'visible';
    }else{
        document.getElementById("error4").style.visibility = 'hidden';
    }
 
    if(error==true)
    {
        return false;
    }
}
</script>

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Quitar mensajes de error cuando se corrige

Publicado por Victor (13 intervenciones) el 20/12/2013 08:39:03
Mil gracias por la rápida respuesta!
Lo pruebo y te digo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Quitar mensajes de error cuando se corrige

Publicado por Victor (13 intervenciones) el 30/12/2013 22:13:58
Mil gracias!
Funciona a la perfección...

Perdona que tardase en responderte...pero he estado liado en la empresa y después de vacaciones...
Gracias again
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar