Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/02/2007, 05:20
blos
 
Fecha de Ingreso: febrero-2007
Mensajes: 7
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Validar formulario en Firefox

Hola caricatos, gracias por tu respuesta. He probado a hacer todo lo que me dijiste y no hay manera. Lo extraño es que hace meses conseguí que una versión menos completa de la función validalo_todo() funcionara en Firefox, pero ahora no hay forma.

Copio de nuevo el código (con las mofificaciones introducidas) a ver si alguien puede echarme una mano:

Llamada a la función (ASP)
<form method = "POST" id="formulario" name = "form" onSubmit="return validalo_todo(this)" action ="default.asp?opcion=5">

Función (Javascript)
<SCRIPT LANGUAGE=JScript>
function validalo_todo(F)
{
if(!vacio(F.nombre.value))
{
alert("Por favor, introduzca su nombre.");
return false;
}
if(!esletra(F.nombre.value))
{
alert("El nombre introducido no puede contener caracteres especiales ni números.");
return false;
}
if( !vacio(F.apellidos.value))
{
alert("Por favor, introduzca su/s apellido/s.");
return false;
}
if( !esletra(F.apellidos.value))
{
alert("El/los apellido/s introducido/s no puede/n contener caracteres especiales ni números.");
return false;
}
if( !mail(F.mail.value))
{
alert("Por favor, introduzca una dirección de e-mail correcta.");
return false;
}
if( !vacio(F.mail.value))
{
alert("Por favor, introduzca una dirección de e-mail.");
return false;
}
if( !esnumero(F.telefono.value))
{
alert("Por favor, introduzca un teléfono correcto.");
return false;
}
if( !vacio(F.telefono.value))
{
alert("Por favor, introduzca su teléfono.");
return false;
}
if( !vacio(F.calle.value) )
{
alert("Por favor, introduzca la calle.");
return false;
}
if( !vacio(F.codigo_postal.value))
{
alert("Por favor, introduzca su código postal.");
return false;
}
if( !esnumero(F.codigo_postal.value))
{
alert("El código postal debe ser en número.");
return false;
}
if( !escodigopostal(F.codigo_postal.value))
{
alert("El código postal debe contener 5 dígitos.");
return false;
}
if( !vacio(F.municipio.value))
{
alert("Por favor, introduzca su municipio.");
return false;
}
if(!vacio(F.provincia.value))
{
alert("Por favor, introduzca su provincia.");
return false;
}
if( !vacio(F.login.value))
{
alert("Por favor, introduzca el login con el que desea registrarse.");
return false;
}
if( !vacio(F.password.value))
{
alert("Por favor, introduzca la palabra clave con la que desea registrarse.");
return false;
}
if (F.password.value!=F.password2.value)
{
alert("Los passwords introducidos no coinciden.");
return false;
}
else
{
return true;
}
}
function esletra(t)
{
var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "a?????bcdefghijklmnñopqrstuvwxyzáéíóú ";
var checkStr = t;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
return false;
}
}

function mail(q)
{
var b=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/
return b.test(q)
}

function esnumero(t)
{
var checkOK = "0123456789";
var checkStr = t;
var allValid = true;
var decPoints = 0;
var allNum = "";
var ch;
var i;
for (i = 0; i < checkStr.length; i++)
{
var ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
{
if (ch == checkOK.charAt(j))
{
break;
}
}
if (j == checkOK.length)
{
allValid = false;
break;
}
allNum += ch;
}
if (!allValid)
{
return false;
}
}


function vacio(q)
{
for ( i = 0; i < q.length; i++ )
{
if ( q.charAt(i) != " " )
{
return true;
}
}
return false;
}

function escodigopostal(field) {
var valid = "0123456789-";
var hyphencount = 0;

if (field.length!=5 && field.length!=10) {
return false;
}
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (temp == "-") hyphencount++;
if (valid.indexOf(temp) == "-1") {
return false;
}
if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
return false;
}
}
return true;
}
</script>