Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/04/2008, 05:24
Rosa08
 
Fecha de Ingreso: marzo-2008
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: validacion FORMULARIO

Hola, he cambiado todo lo que tu me has dicho, pero no funciona. los alerts no salen , bueno me pono error en la pagina.
he puesto esto en html:


<script language="javascript"src="js/validaciones.js"type="text/javascript"></script>
<h4 class="first">&nbsp;</h4>
<p class="first">NOMBRE/NICK: <input type="text" id="nick" name="mnombre" size="50" maxlength="50"></p>
<p>A&Ntilde;O DE NACIMIENTO: <input type="text" name="mnombre" size="20" maxlength="50"></p>
<p>SEXO: <select name="mconocido">
<option value="enlace">
Masculino </option>
<option value="amigo">
Femenino
</select></p>
<p>CIUDAD: <input type="text" name="mnombre" size="30" maxlength="50"></p>
<p>PA&Iacute;S:<select name="menuProvincia" onChange="ver();">
<option value="15">Alemania</option>
<option value="01">Austria</option>
<option value="02">Bélgica</option>
<option value="03">Bosnia Herzegovina</option>
<option value="04">Bulgaria</option>
<option value="33">Croacia</option>
<option value="05">Dinamarca</option>
<option value="06">Eslovenia</option>
<option value="07">España</option>
<option value="08">Estonia</option>
<option value="09">Finlandia</option>
<option value="10">Francia</option>
<option value="11">Grecia</option>
<option value="39">Hungría</option>
<option value="12">Irán</option>
<option value="51">Islandia</option>
<option value="13">Italia</option>
<option value="14">Jordania</option>
<option value="16">Lituania</option>
<option value="17">Marruecos</option>
<option value="18">Noruega</option>
<option value="19">Paises Bajos</option>
<option value="20">Pakistán</option>
<option value="21">Portugal</option>
<option value="22">República Checa</option>
<option value="23">Rumania</option>
<option value="26">Suecia</option>
<option value="35">Suiza</option>
<option value="24">Serbia</option>
<option value="25">Turquia</option>
<option value="27">Tunez</option>
<option value="28">Ucrania</option>
<option value="29">M&aacute;laga</option>
</select> </p>
<p>E-MAIL: <input type="text" id="emilio" name="mnombre" size="50" maxlength="50"></p>
<fieldset>
<label for="Deseo"><input type="checkbox" id="Deseo"> Deseo recibir noticias semanalmente sobre estrenos y novedades</label>
</fieldset>
<p>USUARIO:<input type="text" id="usuario" name="mnombre" size="20" maxlength="50"> </p>
<p>CONTRASE&Ntilde;A: <input type="text" id="pass1" name="mnombre" size="20" maxlength="50"></p>
<p>REPETIR CONTRASE&Ntilde;A:<input type="text" id="pass2" name="mnombre" size="20" maxlength="50"> </p>
<p><input type="button" value="Enviar" onclick="MiFormulario"></p>&nbsp;</p>
</div>


y en el archivo js. el codigo que tu me has dicho. solo he modificado el TuFormulario por MiFormulario.

me falta algo?

gracias de nuevo por tu ayuda.







Cita:
Iniciado por crujikoki Ver Mensaje
Hola de nuevo,

Buffffffffffff, no se por donde empezar... Cuando dices esto:


Por enviar entiendo que le haces un submit, no? Bueno pues los datos van a parar a donde le dices tu. Para indicarle el destino tienes que editar el atributo action del form. Por ejemplo:

<form id="formu" name="formu" method="post" action="miPaginaDeDestino.php">...</form>

La ruta tienes que ponerla dependiendo de donde se encuentre tu páginade destino respecto de tu página de origen. En ese caso solo sirve si están en la misma carpeta.

Luego, sobre lo que pides de la validación, pues tiene algo de faenilla,pero vamos por partes:

Lo de que sea mayor de edad no lo puedes controlar, solo haciendo que te indique la fecha de nacimiento y se la restas a la actual. Esto no lo he hecho nunca y no tengo muy claro como hacerlo, pero lo que yo haría sería restar el año actual menos el introducido. Si da positivo es que tiene más de 18, si da negativo tiene menos, pero si da 0 puede ser que tenga 18 o que aun no. Y para eso hay que recurrir al mes y al día aplicando el mismo procedimiento.

Lo del correo electrónico:
Yo lo que haría sería guardar la cadena introducida y hacerle un split() y como caracter separador la @. Si hace el split() luego miraría lo que hay detrás de la arroba y volvería a hacer otro split() pero esta vez separarí por el punto. Pero aquí viene un tema del que no tengo ni idea. No se como mirar si el dominio y el subdominio son válidos.

Lo de que el usuario sea diferente del nick:

A esto le veo un problema en tu HTML. Has puesto en mismo name en todos los inputs (que no está mal, pero personalmente no me gusta9 pero si haces eso, al menos ponles un id diferente, por que sino cuando hagas un getElementById o un getElementsByName vas a tener problemas. Te los cambio y tu luego pones lo que quieras:

Código PHP:
NOMBRE/NICK: <input type="text" id="nick" name="mnombre" size="50" maxlength="50"></p>
<
p>USUARIO:<input type="text" id="usuario" name="mnombre" size="20" maxlength="50"> </p
Lo de las contraseñas pasa lo mismo que con lo anterior, lo cambio´por esto:
Código PHP:
<p>CONTRASE&Ntilde;A: <input type="text" id="pass1" name="mnombre" size="20" maxlength="50"></p>
<
p>REPETIR CONTRASE&Ntilde;A:<input type="text" id="pass2" name="mnombre" size="20" maxlength="50"> </p
Y para hacerte el script que pides también te cambio la del e-mail:

Código PHP:
<p>E-MAIL: <input type="text" id="emilio" name="mnombre" size="50" maxlength="50"></p
A partir de eso hazte una función que sea algo así:

Código PHP:
function validación()
{
    
ok true;

    
nick document.getElementById("nick");
    
usuario document.getElementById("usuario");
    
pass1 document.getElementById("pass1");
    
pass2 document.getElementById("pass2");
    
correo document.getElementById("emilio");
    
cadenas correo.split("@");
    
    if(
pass1.value != pass2.value)
    {
        
alert("Las contraseñas intriducidas no son iguales");
        
pass1.value "";
        
pass2.value"";
        
ok false;
    }
    
    if(
nick.value == usuario.value)
    {
        
alert("El usuario y el nick no pueden coincidir");
        
nick.value="";
        
usuario.value="";
        
ok false;
    }
    
    if(
cadenas.length == 2)
    {
        
dominios cadenas[1].split(".");
        if(
dominios.length != 2)
        {
            
alert("El correo introducido es incorrecto");
            
ok false;
        }
        
    }
    else
    {
        
alert("El correo introducido es incorrecto");
        
ok false
    }
    
    if(
ok)
        
document.getElementById("TuFormulario").submit();
    

La función no la he probado, y tampoco te he puesto lo de la fecha por que solo se hacerlo en PHP. Fíjate que he supuesto que todo eso está dentro de un formulario y he puesto que tu formulario se llama "TuFormulario". Esta función tendrías que meterla en un onclick de algún botón.

Si hay algún problema lo vuelves a comentar.