Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2008, 09:30
Avatar de estibaliz2006
estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 6 meses
Puntos: 1
no me valida el email en firefox

Hola a todos/as. tengo un formulario que lo resumiré únicamente en dos campos: Nombre y email:

Código PHP:
<form name="form" id="form" onReset="return Limpiar();" action="procesa.php" ENCTYPE="multipart/form-data" METHOD="POST"
Nombre
<
input type="text" size=55 name="nombre" onkeypress "return pulsar(event)" onKeyUp="deshabilita(this.form);" onBlur="valida(this);"><br>
<
span class="mensajeay" id="nombreobl">Campo obligatorio</span><br>
Email:
<
input type="text" size=55 name="email" onkeypress "return pulsar(event)" onKeyUp="deshabilita(this.form);" onblur="document.getElementById('emailobl').style.visibility =(ValidarEmail('email')) ? 'hidden' : 'visible';"><br>
<
span class="mensajeay" id="emailobl">Campo obligatorioIntroduzca un email v&#225;lido</span>
<input type="submit" name="B1" value="Enviar"  disabled
bien. las funciones que utilizo para validar son las siguientes:

Código PHP:
//Funcion limpiar
function Limpiar(){

    if (
window.confirm('¡¡¡Atención!!! Se van a eliminar todos los datos introducidos')){
         return 
true;
     } 
     return 
false;        
}
///valida campos no vacíos
function valida(c)
{
//alert("validando");
var i,v;
if(
c)
 {
 
i=c.name+"obl";
 (
c.value.length<3)?v="visible":v="hidden";
 
document.getElementById(i).style.visibility=v;
 }
}
///evitar espacios en blanco
function pulsar(e) {
    
tecla = (document.all) ? e.keyCode e.which;
    if (
tecla==8) return true;
    
patron =/s/;
    
te String.fromCharCode(tecla);
    return !
patron.test(te);
}

///deshabilita botón enviar si campos vacíos
function deshabilita(form)
{
    if ((
form.email.value != "") && (form.direccion.value != "") && (form.telefono.value != "") && (form.provincia.value!= "") && (form.ciudad.value.length >= 3) && (form.nombre.value.length != "") && ValidarEmail("email") )
    { 
        
form.B1.disabled false
    } 
    else 
    { 
        
form.B1.disabled true
    }
}

function 
ValidarEmail(field)
{
var 
retVal true;
var 
email = /^[w-.]+@([w-]+.)+[w-]{2,4}$/;
if (!
email.test(document.getElementById(field).value) ) 
{
retVal false
}
return 
retVal

¿cuál es el problema? pues el problema es que en ie todo funciona a la perfección. me valida tanto el campo nombre como el campo email, verificando no metan espacios en blanco como datos del campo y que el email sea válido. además, cuando no se cumple las premisas muestra el mensaje de ayuda justo debajo del input y además el botón de enviar aparece desactivado en tanto en cuanto no esté todo correctamente. ya digo, en ie todo va OK. el problema es en firefox. en firefox no me valida el campo email o mejor dicho, me valida el campo email pero no me muestra el mensaje de ayuda si está mal cumplimentado y no me reactiva el botón enviar cuando está todo correctametne cumplimentado. ¿a qué es debido?