Foros del Web » Programando para Internet » Javascript »

Duda sobre validación

Estas en el tema de Duda sobre validación en el foro de Javascript en Foros del Web. Muy buenas, qué tal ? Tengo un problema con una validación. He hecho un pequeño formulario de unos sorteos y hay un campo denominado edad, ...
  #1 (permalink)  
Antiguo 28/02/2011, 03:47
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Exclamación Duda sobre validación

Muy buenas, qué tal ?

Tengo un problema con una validación. He hecho un pequeño formulario de unos sorteos y hay un campo denominado edad, es un input type text, el cual si la edad introducida es menor o igual a 14 años, aparece unos campos aparte (autorización paterna, etc).
Lo que he hecho es que si se introduce un campo mayor de 15 años y se pulsa el botón de Si (que quiere decir que si es menor de edad) salte un alert y le diga que no hace falta pulsar el botón. El problema que tengo es que cuando cambio a No y pulso enviar aparece de nuevo el mismo mensaje.
Javascript guarda el valor de la primera variable que tomó? Tendría que destruir el valor? Aquí os dejo el código.

Código Javascript:
Ver original
  1. var edad = 14;
  2. if(formulario.age.value <= edad && formulario.ageover.value != 1){
  3. alert('Error: \nEres menor de 14 años. Por favor, marca la casilla \"Si\" ');
  4. return false;
  5. }

Y la parte HTML

Código HTML:
Ver original
  1. Si      <input type="radio" name="ageover" onclick="return show();" value="1">
  2.         No  <input type="radio" name="ageover" onclick="return dontshow();" value="0"/>


La función show y dontshow es simplemente para que aparezcan o no los campos si se pulsa si o no respectivamente.

A ver si me pueden echar un cable :)

Un saludo y gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #2 (permalink)  
Antiguo 28/02/2011, 10:21
 
Fecha de Ingreso: febrero-2011
Ubicación: Avellaneda, Buenos Aires
Mensajes: 39
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Duda sobre validación

Está faltando código.
  #3 (permalink)  
Antiguo 01/03/2011, 03:06
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Duda sobre validación

Cita:
Iniciado por esjuanma Ver Mensaje
Está faltando código.
Pensé que no hacía falta toda la ristra de código pero bueno, aquí la dejo:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <title>Formulario</title>
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.  
  3.  
  4. function validar(formulario) {
  5.     var edad = 14;
  6.     if(formulario.subject.value.length == '' || formulario.name.value.length == "" ||  formulario.age.value.length == "" || formulario.address.value.length == "" || formulario.zipcode.value.length == "" || formulario.telephone.value.length == "" || formulario.ageover.value == "") {
  7.         alert("Error: \nFalta por rellenar algunos campos.");
  8.         return false;
  9.     }
  10.     if(isNaN(formulario.age.value)) {
  11.         alert("Error:\nEste campo debe tener sólo números.");
  12.         formulario.age.focus();
  13.         return false;
  14.     }
  15.     if(isNaN(formulario.zipcode.value) || formulario.zipcode.value.length < 5){
  16.         alert("Error: \nEl código postal es incorrecto.");
  17.         formulario.zipcode.focus();
  18.         return false;
  19.     }
  20.    
  21.     if(isNaN(formulario.telephone.value) || formulario.telephone.value.length < 9){
  22.         alert("Error: \n El número de teléfono que has introducido está mal.");
  23.         formulario.telephone.focus();
  24.         return false;
  25.     }
  26.     if(formulario.age.value <= edad && formulario.ageover.value != 1){
  27.         alert('Error: \nEres menor de 14 años. Por favor, marca la casilla \"Si\" ');
  28.         return false;
  29.     }
  30.     if(formulario.ageover.value != 1){
  31.          document.getElementById('capaRadio').style.display='none';
  32.     }
  33.     return true;
  34. }
  35.  
  36. function show(){
  37.     if(document.getElementById('capaRadio').style.display == 'none'){
  38.         document.getElementById('capaRadio').style.display='block';
  39.         document.getElementById('capaMayorEdadRadio').style.display='none';
  40.     }else{
  41.          document.getElementById('capaRadio').style.display='none';
  42.     }  
  43. }
  44.  
  45. function dontshow(){
  46.     if(document.getElementById('capaMayorEdadRadio').style.display == 'none'){
  47.         document.getElementById('capaMayorEdadRadio').style.display='block';
  48.         document.getElementById('capaRadio').style.display='none';
  49.     }else{
  50.          document.getElementById('capaMayorEdadRadio').style.display='none';
  51.     }  
  52. }
  53.  
  54. </script>
Código HTML:
Ver original 
Código PHP:
<?php

    $validation 
$_REQUEST['validation'];    
    if(isset(
$validation) == 1){

        
$subject $_REQUEST['subject'];
        
$name $_REQUEST['name'];
        
$age =  $_REQUEST['age'];
        
$address =  $_REQUEST['address'];
        
$zipcode $_REQUEST['zipcode'];
        
$telephone $_REQUEST['telephone'];
        
$ageover $_REQUEST['ageover'];
        
        
$readername $_REQUEST['readername'];
        
$tutorname $_REQUEST['tutorname'];
        
$tutoremail $_REQUEST['tutoremail'];
        
$tutortelephone $_REQUEST['tutortelephone'];
        
$tutorauth $_REQUEST['tutorauth'];
        
        if(
$ageover != 1){    
            if(isset(
$subject) == "" || isset($name) == "" || isset($age) == "" || isset($address) == "" || isset($zipcode) == "" || isset($telephone) == "" || isset($ageover) == ""  || ($age <= 14 && $tutorauth != ) ){
                echo 
"Te has olvidado de rellenar algún campo. <a href='javascript:history.back(-1)'>Volver atrás</a>";    
                exit;
            }else{
                
$from "[email protected]";
                
$for "hola@hola.
                $header = "
From" . $from . " rn";
                $header .= "
X-MailerPHP/" . phpversion() . " rn";
                $header .= "
Mime-Version1.0 rn";
                $header .= "
Content-Typetext/htmlcharset=utf-8";
                $content = "
<h1>Formulario Como Tú</h1>"; 
                $content .= "
<b>Nombre: </b>".$name."<br>";

                if(mail($for, $subject, $content, $header)){
                    echo "
Te has suscrito al concurso satisfactoriamenteGracias por participar.";
                    exit;
                }else{
                    echo "
Ha habido un problema al suscribirte al concursoInténtalo de nuevo pasados unos minutos";
                }
            }
        }else{
            if( ($age > 14 && $tutorauth == 1 ) || isset($readername) == "" || isset($tutorname) == "" || isset($tutoremail) == "" || isset($tutortelephone) == "" || isset($tutorauth) == "" ){
                echo "
Ha habido un error en un campoPor favorverifíquelo. <a href='javascript:history.back(-1)'>Volver atrás</a>";
                exit;
            }else{
            
                if($tutorauth != 1){
                    echo "
<div>Tienes que <strong>autorizar la participación del menor</strongpara poder participar.</div>";
                    exit;
                }else{
                    if($tutorauth == 1){
                        $tutorauth = "
Si";
                    }
                
                    $from = "
aaa@eee.es";
                    $for = "
aaa@aaa.com";
                    
                    $header = "
From" . $from . " rn";
                    $header .= "
X-MailerPHP/" . phpversion() . " rn";
                    $header .= "
Mime-Version1.0 rn";
                    $header .= "
Content-Typetext/htmlcharset=utf-8";
                    
                    $content = "
<h1>Formulario Como Tú</h1>"; 
                    $content .= "
<b>Nombre: </b>".$name."<br>";
                    $content .= "
<b>Nombre y Apellidos de la lectora: </b>".$readername."<br>";
                    $content .= "
<b>Nombre y apellidos del padre madre tutor: </b>".$tutorname."<br>";
                    $content .= "
<b>E-mail del padre madre tutor: </b>".$tutoremail."<br>";
                    $content .= "
<b>Teléfono del padre madre tutor: </b>".$tutortelephone."<br>";
                    $content .= "
<b>Autorizo la participación del menor a mi cargo: </b>".$tutorauth."<br>";
             
                    if(mail($for, $subject, $content, $header)){
                        echo "
Te has suscrito al concurso satisfactoriamenteGracias por participar.";
                        exit;
                    }else{
                        echo "
Ha habido un problema al suscribirte al concursoInténtalo de nuevo pasados unos minutos";
                    }    
                }
            }
        }
    }
    
?>
Código HTML:
Ver original
  1. <form action="#" method="post" name="envioFormulario" onSubmit = "return validar(this)">
  2.   <table width="600" border="1" align="center">
  3.     <tr>
  4.       <th width="100%" colspan="2">Formulario</th>
  5.     </tr>
  6.     <tr>
  7.       <td width="50%"><div align="right">Asunto</div></td>
  8.       <td><label>
  9.         <input type="text" name="subject" id="textfield" />
  10.         </label></td>
  11.     </tr>
  12.     <tr>
  13.       <td><div align="right">Nombre</div></td>
  14.       <td><input type="text" name="name" id="textfield" /></td>
  15.     </tr>
  16.     <tr>
  17.       <td><div align="right">Edad</div></td>
  18.       <td><input type="text" name="age" id="textfield" maxlength="2" /></td>
  19.     </tr>
  20.     <tr>
  21.       <td><div align="right">Dirección</div></td>
  22.       <td><input type="text" name="address" id="textfield" /></td>
  23.     </tr>
  24.     <tr>
  25.       <td><div align="right">Código Postal</div></td>
  26.       <td><input type="text" name="zipcode" id="textfield" maxlength="5"/></td>
  27.     </tr>
  28.     <tr>
  29.       <td><div align="right">Teléfono Fijo</div></td>
  30.       <td><input type="text" name="telephone" id="textfield" maxlength="9" /></td>
  31.     </tr>
  32.     <tr>
  33.       <td><div align="right">¿Eres menor de 14 años?</div></td>
  34.       <td>
  35.         Si      <input type="radio" name="ageover" onclick="return show();" value="1">
  36.         No  <input type="radio" name="ageover" onclick="return dontshow();" value="0"/>
  37.       </td>
  38.     </tr>
  39.     <tr>
  40.       <td colspan="2">
  41.             <div id="capaMayorEdadRadio" style="display:none">
  42.                 <p>Tus datos van a formar parte de un fichero del que es responsable
  43.             </div>
  44.             <div id="capaRadio" style="display:none;">
  45.                 <table border="1" width="100%">
  46.                     <th colspan="2">
  47.                         Autorización Paterna
  48.                     </th>
  49.                     <tr>
  50.                         <td align="right" width="50%">Nombre y apellidos de la lectora: </td>
  51.                         <td><input type="text" name="readername" id="textfield" /></td>
  52.                     </tr>
  53.                     <tr>
  54.                         <td align="right">Nombre y apellidos del padre / madre / tutor: </td>
  55.                         <td><input type="text" name="tutorname" id="textfield" /></td>
  56.                     </tr>
  57.                     <tr>
  58.                         <td align="right">E-mail del padre / madre / tutor: </td>
  59.                         <td><input type="text" name="tutoremail" id="textfield" /></td>
  60.                     </tr>
  61.                     <tr>
  62.                         <td align="right">Teléfono del padre / madre / tutor: </td>
  63.                         <td><input type="text" name="tutortelephone" id="textfield" maxlength="9" /></td>
  64.                     </tr>
  65.                     <tr>
  66.                         <td align="right">Autorizo la participación del menor a mi cargo</td>
  67.                         <td><input name="tutorauth" type="checkbox" value="1" /></td>
  68.                     </tr>
  69.                     <tr>
  70.                         <td colspan="2">
  71.                             <div>
  72.                                 <p>Tus datos y que tiene como única finalidad gestionar las promociones o sorteos que organiza la web revistacomotu.com y la revista COMO TÚ, así como  gestionar la entrega del premio que ganes.</p>
  73.  
  74.                             </div>
  75.                         </td>
  76.                     </tr>
  77.                     <tr>
  78.                         <td colspan="2"></td>
  79.                     </tr>
  80.                
  81.                 </table>
  82.             </div>
  83.       </td>
  84.     </tr>
  85.     <tr>
  86.       <td colspan="2">&nbsp;</td>
  87.     </tr>
  88.     <tr>
  89.       <td><input name="validation" type="hidden" value="1" /></td>
  90.       <td><input name="enviar" type="submit" value="Enviar" /></td>
  91.     </tr>
  92.   </table>
  93. </form>
  94. </body>
  95. </html>
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?

Etiquetas: validar
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 18:23.