Foros del Web » Programando para Internet » Javascript »

Una ayudita simple :(

Estas en el tema de Una ayudita simple :( en el foro de Javascript en Foros del Web. Pues, nada ante todo gracias por leer y se que esta pregunta está muy machacada pero yo no encuentro el error, al enviar el formulario ...
  #1 (permalink)  
Antiguo 27/03/2009, 11:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 149
Antigüedad: 16 años, 4 meses
Puntos: 1
De acuerdo Una ayudita simple :(

Pues, nada ante todo gracias por leer y se que esta pregunta está muy machacada pero yo no encuentro el error, al enviar el formulario se devuelve une error de js diciendo que el objeto no es válido, he comprobado y los id de lo formularios estan bien y para recoger el contenido de lo mismo estoy utilizandogetElementById, pero aun así no se que pasa a ver si me podeis abrir lo ojitos asias :)

JS:

<script language="JavaScript" type="text/javascript">

function validar_formulario() {
// Controlo que los campos no estén vacíos
//alert('Validando formulario');
if(document.getElementById('nombre').value == 0){alert('Tiene que introducir un nombre.'); document.getElementById('nombre').focus(); return 0; }
if(document.getElementById('dni').value == 0){ alert('Tiene que introducir un dni.'); document.getElementById('dni').focus(); return 0; }
else
{
dni = document.getElementById('dni').value;
numero = dni.substr(0,dni.length-1);
let = dni.substr(dni.length-1,1);
numero = numero % 23;
letra='TRWAGMYFPDXBNJZSQVHLCKET';
letra=letra.substring(numero,numero+1);
if (letra!=let) {
alert('Tiene que introducir un válido.');
document.getElementById('dni').focus();
return 0;
}
}
if(document.getElementById('profesion').value == 0){ alert('Tiene que introducir una profesión.'); document.getElementById('profesion').focus(); return 0; }
if(document.getElementById('direccion').value == 0){ alert('Tiene que introducir una dirección.'); document.getElementById('direccion').focus(); return 0; }
if(document.getElementById('cp').value == 0){ alert('Tiene que introducir un códigopostal.'); document.getElementById('cp').focus(); return 0; }
if(document.getElementById('poblacion').value == 0){ alert('Tiene que introducir una población.'); document.getElementById('poblacion').focus(); return 0; }
if(document.getElementById('barrio').value == 0){ alert('Tiene que introducir su barrio.'); document.getElementById('barrio').focus(); return 0; }
if(document.getElementById('telf_1').value == 0){ alert('Tiene que introducir un teléfono principal.'); document.getElementById('telf_1').focus(); return 0; }
if(document.getElementById('email').value == 0){ alert('Debe de especificar un e-mail.'); document.getElementById('email').focus(); return 0; }
else
{
//expresion regular
var b=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/
//comentar la siguiente linea si no se desea que aparezca el alert()
if(b.test(document.getElementById('email').value)) {
}
else
{
alert ("El email introducido no es válido");
//devuelve verdadero si la validacion es OK, y falso en caso contrario
document.getElementById('email').focus();
return 0;
}
}
if(document.getElementById('nick').value == 0){ alert('Tiene que introducir un nick.'); document.getElementById('nick').focus(); return 0; }
if(document.getElementById('pass').value == 0){ alert('Tiene que introducir una contraseña.'); document.getElementById('pass').focus(); return 0; }
alert('todo guay');
document.getElementById('fusuario').submit();
}

</script>


FORMULARIO:
Código HTML:
<form id="fusuario" name="fusuario" method="post" action="apuntateinfo.php">
						  <table width="100%" border="0" cellspacing="0" cellpadding="0">
							<tr><td class="textoDatos">Nombre y Apellidos &nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" type="text" name="nombre" id="nombre" tabindex="1" value=""/></td></tr>
							<tr><td class="textoDatos">DNI&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="dni" type="text" id="dni" tabindex="2" value="" /></td></tr>
							<tr><td class="textoDatos">A&ntilde;o nacimiento&nbsp;<font color="#FF0000">*</font></td><td><select class="textoFormDatos" name="anio_nac" tabindex="3"><option value="1980" selected="selected">1980</option><option value="1981" selected="selected">1981</option><option value="1982" selected="selected">1982</option><option value="1983" selected="selected">1983</option><option value="1984" selected="selected">1984</option><option value="1985" selected="selected">1985</option><option value="1986" selected="selected">1986</option><option value="1987" selected="selected">1987</option><option value="1988" selected="selected">1988</option><option value="1989" selected="selected">1989</option><option value="1990" selected="selected">1990</option></select></td></tr>
							<tr><td class="textoDatos">Profesion</td><td><input class="textoFormDatos" name="profesion" type="text" id="profesion" tabindex="4" value="" /></td></tr>
							<tr><td class="textoDatos">Sexo&nbsp;<font color="#FF0000">*</font></td><td><select class="textoFormDatos" name="sexo" tabindex="5"><option value="0" selected="selected">Hombre</option><option value="1">Mujer</option></select></td></tr>
							<tr><td class="textoDatos">Direcci&oacute;n&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="direccion" type="text" id="direccion" tabindex="6" value="" /></td></tr>
							<tr><td class="textoDatos">C&oacute;digo postal&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="cp" type="text" id="cp" tabindex="7" value="" /></td></tr>
							<tr><td class="textoDatos">Poblaci&oacute;n&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="poblacion" type="text" id="poblacion" tabindex="8" value=""/></td></tr>
							<tr><td class="textoDatos">Barrio&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="barrio" type="text" id="barrio" tabindex="9" value="" /></td></tr>
							<tr><td class="textoDatos">Telf. principal&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="telf_1" type="text" id="telf_1" tabindex="10" value="" /></td></tr>
							<tr><td class="textoDatos">Telf. secundario</td><td><input class="textoFormDatos" name="telf_2" type="text" id="telf_2" tabindex="11" value="" /></td></tr>
							<tr><td class="textoDatos">E-mail&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="email" type="text" id="email" tabindex="12" value="" /></td></tr>
							<tr><td class="textoDatos">&nbsp;</td><td>&nbsp;</td></tr>
							<tr><td class="textoDatos">Nick&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="nick" type="text" id="nick" tabindex="13" value="" /></td></tr>
							<tr><td class="textoDatos">Contrase&ntilde;a&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="pass" type="text" id="pass" tabindex="14" value="" /></td></tr>
							<tr><td >&nbsp;</td><td>&nbsp;</td></tr>
							<tr><td>&nbsp;</td><td>&nbsp;</td></tr>
						  </table>
<input name="" type="button" value="Resgistrarse" class="EnviarBtnContacto" onClick="return validar_formulario()" />
</form> 
De nuevo gracias por vuestro tiempo .

Última edición por sk1one; 27/03/2009 a las 11:52
  #2 (permalink)  
Antiguo 27/03/2009, 11:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Una ayudita simple :(

Aquí:
Código javascript:
Ver original
  1. dni = getElementById('dni').value;
Debe ser document.getElementById
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 27/03/2009, 11:31
 
Fecha de Ingreso: diciembre-2007
Mensajes: 149
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Una ayudita simple :(

Gracias, ese er uno de ellos pero sigue dandome error: Se esperaba un objeto. :) aun sigo jodido :(
  #4 (permalink)  
Antiguo 27/03/2009, 11:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Una ayudita simple :(

Además, en todos los if, las instrucciones las colocaste en una sóla línea sin separarlas por el punto y coma ;

Ejemplo:
Código javascript:
Ver original
  1. if(...){ alert('...') document.getElementById('profesion').focus() return 0; }

Debería ser:
Código javascript:
Ver original
  1. if(...){ alert('...'); document.getElementById('profesion').focus(); return 0; }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 27/03/2009, 11:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 149
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Una ayudita simple :(

Cita:
Iniciado por David el Grande Ver Mensaje
Además, en todos los if, ......
Cierto eso ya lo estab corrigiendo y ahi un ( antes del segundo else que tambien lo he quitado. Asias posteo como va cambiando vale?

Última edición por sk1one; 27/03/2009 a las 11:55
  #6 (permalink)  
Antiguo 27/03/2009, 11:46
 
Fecha de Ingreso: diciembre-2007
Mensajes: 149
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Una ayudita simple :(

He editado el de arriba

Última edición por sk1one; 27/03/2009 a las 11:51
  #7 (permalink)  
Antiguo 27/03/2009, 11:54
 
Fecha de Ingreso: diciembre-2007
Mensajes: 149
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Una ayudita simple :(

Cita:
Iniciado por David el Grande Ver Mensaje
Además, en todos los if, l.......
Una ultima pregunta, ¿porque no me esta chekeando el ultimo id el campo de texto con id = pass ?, se lo pasa por alto.

Soy un zopenco lo se xD
  #8 (permalink)  
Antiguo 27/03/2009, 12:16
 
Fecha de Ingreso: diciembre-2007
Mensajes: 149
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Una ayudita simple :(

Bueno alguna alma caritativa que me ayude a terminar este problemA? :( solo me queda lo de que pasa por alto linea:

if(document.getElementById('pass').value == 0){ alert('Tiene que introducir una contraseña.'); document.getElementById('pass').focus(); return 0; }

es como si no existiera
  #9 (permalink)  
Antiguo 27/03/2009, 12:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 149
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Una ayudita simple :(

Ya lo he solucionado, he cambiado el id pass por otro id, llamado contrasenia, al final la linea:

if(document.getElementById('pass').value == 0){ alert('Tiene que introducir una contraseña.'); document.getElementById('pass').focus(); return 0; }

La he sustituido por:

if(document.getElementById('contrasenia').value == 0){ alert('Tiene que introducir una contraseña.'); document.getElementById('contrasenia').focus(); return 0; }


Y en el formulario era asi :

<tr><td class="textoDatos">Contrase&ntilde;a&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="pass" type="text" id="pass" tabindex="14" value="" /></td></tr>

Y ahora es:
<tr><td class="textoDatos">Contrase&ntilde;a&nbsp;<font color="#FF0000">*</font></td><td><input class="textoFormDatos" name="contrasenia" type="text" id="contrasenia" tabindex="14" value="" /></td></tr>

No se porque no m deja pero bueno, supongo que en algun otro lado habra un elemento con id="pass", gracias por la ayuda de verdad ^^
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 13:24.