JavaScript - Javascript en Firefox

 
Vista:

Javascript en Firefox

Publicado por Pau (1 intervención) el 13/12/2006 20:46:16
Hola, este es mi primer mensaje es vuestro foro. Seguro que no soy el primero que tiene el siguiente problema que os cuento a continuación.

Desarrollé en Javascript un código para validar los diferentes campos de un formulario antes de ser enviado. Éste me funciona perfectamente en Explorer, pero en Mozilla no funciona. ¿Alguien sabe cómo hay que programar en Javascript para que lo scripts funcionen en Mozilla?

Os dejo todo el código del script. Gracias por vuestra atención!

CÓDIGO JAVASCRIPT

<script>
function validalo_todo()
{
if( vacio(this.form.nombre.value) == false )
{
alert("Por favor, introduzca su nombre.");
exit;
}

if( esletra(this.form.nombre.value) == false )
{
alert("El nombre introducido no puede contener caracteres especiales ni números.");
exit;
}
if( vacio(this.form.apellidos.value) == false )
{
alert("Por favor, introduzca su/s apellido/s.");
exit;
}
if( esletra(this.form.apellidos.value) == false )
{
alert("El/los apellido/s introducido/s no puede/n contener caracteres especiales ni números.");
exit;
}
if( vacio(this.form.mail.value) == false )
{
alert("Por favor, introduzca una dirección de e-mail.");
exit;
}
if( mail(this.form.mail.value) == false )
{
alert("Por favor, introduzca una dirección de e-mail correcta.");
exit;
}
if( vacio(this.form.anyo.value) == false )
{
alert("Por favor, introduzca el año de su fecha de nacimiento.");
exit;
}
if( vacio(this.form.edad.value) == false )
{
alert("Por favor, introduzca su edad.");
exit;
}
if( esnumero(this.form.edad.value) == false )
{
alert("Por favor, introduzca una edad correcta.");
exit;
}
if( esnumero(this.form.anyo.value) == false )
{
alert("Por favor, introduzca un año correcto.");
exit;
}
var dia=this.form.dia.options[this.form.dia.selectedIndex].text;
var mes=this.form.mes.options[this.form.mes.selectedIndex].text;
var anyo=this.form.anyo.value;
var edad=this.form.edad.value;
if (compruebafecha(dia,mes,anyo) == false )
{
alert("La fecha de nacimiento introducida es incorrecta.");
exit;
}
if (fechaedad(dia,mes,anyo,edad) == false )
{
alert("La edad indicada no coincide con la fecha de nacimiento.");
exit;
}
alert("El this.formulario se ha validado con éxito.");
}

function vacio(q)
{
for ( i = 0; i < q.length; i++ )
{
if ( q.charAt(i) != " " )
{
return true;
}
}
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 esletra(t)
{
var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñ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 compruebafecha(dia,mes,anyo)
{
if (dia=="31" && mes=="febrero")
{
return false;
}
else if (dia=="30" && mes=="febrero")
{
return false;
}
else if (dia=="31" && mes=="abril")
{
return false;
}
else if (dia=="31" && mes=="junio")
{
return false;
}
else if (dia=="31" && mes=="septiembre")
{
return false;
}
else if (dia=="31" && mes=="noviembre")
{
return false;
}
else if (dia=="29" && mes=="febrero")
{
if (anyo%4!=0)
{
return false;
}
}
}

function fechaedad(dia,mes,anyo,edad)
{
var valormes;
if (mes=="enero")
{
valormes=1;
}
else if (mes=="febrero")
{
valormes=2;
}
else if (mes=="marzo")
{
valormes=3;
}
else if (mes=="abril")
{
valormes=4;
}
else if (mes=="mayo")
{
valormes=5;
}
else if (mes=="junio")
{
valormes=6;
}
else if (mes=="julio")
{
valormes=7;
}
else if (mes=="agosto")
{
valormes=8;
}
else if (mes=="septiembre")
{
valormes=9;
}
else if (mes=="octubre")
{
valormes=10;
}
else if (mes=="noviembre")
{
valormes=11;
}
else if (mes=="diciembre")
{
valormes=12;
}
var ahora=new Date();
var anyoactual=ahora.getFullYear();
var restaanyos=anyoactual-anyo;
var mesactual=ahora.getMonth()+1;
var diaactual=ahora.getDate();

if (restaanyos==edad)
{
if (valormes<mesactual)
{

}
else if (valormes>mesactual)
{
return false;
}
else if (valormes==mesactual)
{
if (dia<diaactual)
{
return true;
}
else if (dia>diaactual)
{
return false;
}
else if (dia==diaactual)
{
return true;
}
}
}
else if (restaanyos-1==edad)
{
if (valormes<mesactual)
{
return false;
}
else if (valormes>mesactual)
{
return true;
}
else if (valormes==mesactual)
{
if (dia<diaactual)
{
return false;
}
else if (dia>diaactual)
{
return true;
}
else if (dia==diaactual)
{
return false;
}
}
}
else
{
return false;
}
}
</script>

CÓDIGO HTML

<body bgcolor="#FFFFCC">
<form name="form" id="form">
<table>
<tr>
<td width="127"><font face="Arial, Helvetica, sans-serif">Nombre: </font></td>
<td width="180"><font face="Arial, Helvetica, sans-serif">
<input name="nombre" type="text" size="30" maxlength="100">
</font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif">Apellidos:</font></td>
<td><font face="Arial, Helvetica, sans-serif">
<input name="apellidos" type="text" id="apellidos" size="30" maxlength="100" />
</font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif">E-Mail:</font></td>
<td><font face="Arial, Helvetica, sans-serif">
<input name="mail" type="text" id="mail" size="30" maxlength="100" />
</font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif">Fecha de nacimiento:</font></td>
<td><font face="Arial, Helvetica, sans-serif">
<select name="dia" id="dia">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
<select name="mes" id="mes">
<option>enero</option>
<option>febrero</option>
<option>marzo</option>
<option>abril</option>
<option>mayo</option>
<option>junio</option>
<option>julio</option>
<option>agosto</option>
<option>septiembre</option>
<option>octubre</option>
<option>noviembre</option>
<option>diciembre</option>
</select>
<input name="anyo" type="number" id="anyo" size="5" maxlength="4" />
</font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif">Edad: </font></td>
<td><font face="Arial, Helvetica, sans-serif">
<input name="edad" type="number" size="3" maxlength="2" />
</font></td>
</tr>
<tr>
<td colspan="2" align="center"><font face="Arial, Helvetica, sans-serif">
<input type="button" value="Enviar" onclick="validalo_todo()">
</font></td>
</tr>
</table>
<p> </p>
</form>

</body>
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