Foros del Web » Programando para Internet » Javascript »

Formulario que no comprueva los campos vacios... :S

Estas en el tema de Formulario que no comprueva los campos vacios... :S en el foro de Javascript en Foros del Web. Hola gente! Tengo un formulario de email que ni comprueva los campos vacios ni valida el email... El correo siempre se envia, aunque los campos ...
  #1 (permalink)  
Antiguo 04/06/2010, 18:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Pregunta Formulario que no comprueva los campos vacios... :S

Hola gente!
Tengo un formulario de email que ni comprueva los campos vacios ni valida el email... El correo siempre se envia, aunque los campos estén vacios.

Yo no veo el error, podrían echarle un vistazo?¿

Código:
<script language="JavaScript">
function check()
{
  var checked=true;
  var pattern=/.*\@.*\..*/;
      if (checked)
  {
	  	    if (document.sendform.vname.value=="")
        {
		  document.sendform.vname.focus();
		  document.sendform.vname.select();
          alert ("Si us plau, ompli tots els camps.");
          checked=false;
        }
	  }
                    if (checked)
	  {
	    if (document.sendform.nname.value=="")
        {
		  document.sendform.nname.focus();
		  document.sendform.nname.select();
          alert ("Si us plau, ompli tots els camps.");
          checked=false;
        }
	  }
                if (checked)
	  {
	    if ((pattern.test(document.sendform.email.value))==false)
        {
		  document.sendform.email.focus();
		  document.sendform.email.select();
          alert ("Si us plau, introduïu una adreça correcta de correu electrònic.");
          checked=false;
        }
	  }
              if (checked)
	  {
	    if (document.sendform.email.value=="")
        {
		  document.sendform.email.focus();
		  document.sendform.email.select();
          alert ("Si us plau, ompli tots els camps.");
          checked=false;
        }
	  }
                    if (checked)
	  {
	    if (document.sendform.nachricht.value=="")
        {
		  document.sendform.nachricht.focus();
		  document.sendform.nachricht.select();
          alert ("Si us plau, ompli tots els camps.");
          checked=false;
        }
	  }
        if (checked)
  {
    	document.sendform.submit;
  }
  return checked;
} 
</script>
      
      <form name="sendform" onSubmit="return check()" action="post.php" method="POST" enctype="application/x-www-form-urlencoded">
        <table border="0" cellpadding="0" cellspacing="0" width="310">
          <input type="hidden" name="fgwemail" value="[email protected]">
          
          <input type="hidden" name="fgwsubject" value="Formulari B2T">
          
          <input type="hidden" name="fgwreturnurl" value="return.html">
          
          <tr>
            <td width="72" valign="top"><span class="grey">Nom</span></td>
            <td width="239" valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="vname" value=""><br></td>
            </tr>
          
          <tr>
            <td valign="top"><span class="grey">Cognom</span></td>
            <td valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="nname" value=""><br></td>
          </tr>
          
          <tr>
            <td valign="top"><span class="grey">E-Mail</span></td>
            <td valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="email" value=""><br></td>
          </tr>
          
          <tr>
            <td valign="top"><span class="grey">Missatge</span></td>
            <td valign="top"><textarea style="width: 200px;" cols="39" rows="7" class="normal" name="nachricht2"></textarea><br></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td>&nbsp;</td>
            <td align="left"><input type="image" border="0" src="../images/w2dsbmt.gif" usemap="0"></td>
            </tr>
          </table>
         </form>
El post esta en php, tengo que validarlo en el post¿ No verdad?¿
  #2 (permalink)  
Antiguo 04/06/2010, 18:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Formulario que no comprueva los campos vacios... :S

document.sendform.submit; he aquí el problema, quita esta linea ya que obligas a que se envié el form cuando se esta validadando, para ello es que devuelves false al onsubmit del form no??

además, algunos navegadores no son compatibles con ese método de llamado(document.form.input), por el que debes usar document.getElementById('inputname').value o document.forms['sendform'].elements['inputname'].value
  #3 (permalink)  
Antiguo 04/06/2010, 18:24
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Formulario que no comprueva los campos vacios... :S

Cita:
Iniciado por maycolalvarez Ver Mensaje
document.sendform.submit; he aquí el problema, quita esta linea ya que obligas a que se envié el form cuando se esta validadando, para ello es que devuelves false al onsubmit del form no??
Pero entonces no se enviará! Ya e tenido que poner el action y el post dentro del formulario envez de en el script.. Tengo que meter el submit tb entonces?¿
  #4 (permalink)  
Antiguo 04/06/2010, 18:29
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Formulario que no comprueva los campos vacios... :S

No funciona, sigue pasando lo mismo... ademas el formulario siempre me funciono lo que le e cambiado tantas cosas que ya no se.. no funciona.. osea funciona porque se envia pero no funciona porque no valida el email ni comprueva los campos.. alguna idea?¿

Última edición por zerock; 04/06/2010 a las 18:34
  #5 (permalink)  
Antiguo 04/06/2010, 18:34
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Formulario que no comprueva los campos vacios... :S

si se envía, cuando el delegado(entiéndase el que controla el evento) del evento onsubmit recibe un TRUE, si este recibe FALSE no envía el formulario

el problema está en el código de validación de la función check, al parecer siempre devuelve TRUE, por lo que debes depurarlo (puedes usar firebug+FF), intenta colocar:

alert(checked);

antes de

return checked;

para que veas que si te sale TRUE o FALSE.
  #6 (permalink)  
Antiguo 04/06/2010, 18:53
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Formulario que no comprueva los campos vacios... :S

Cita:
Iniciado por maycolalvarez Ver Mensaje
si se envía, cuando el delegado(entiéndase el que controla el evento) del evento onsubmit recibe un TRUE, si este recibe FALSE no envía el formulario

el problema está en el código de validación de la función check, al parecer siempre devuelve TRUE, por lo que debes depurarlo (puedes usar firebug+FF), intenta colocar:

alert(checked);

antes de

return checked;

para que veas que si te sale TRUE o FALSE.

Lo ize, me dice que el valor del document.sendfrom.vname esta sin definir.. A que se refiere?
  #7 (permalink)  
Antiguo 04/06/2010, 18:58
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Formulario que no comprueva los campos vacios... :S

exactamente como te indique en el post anterior, ese modelo de llamado de objetos no es recomendable, usa siempre:

document.forms['sendfrom'].elements['vname'].value

ó

document.getElementById('vname_id').value // en este caso debes de colocar ID a los inputs (<input id="id_input" name="name_input" ... />)


usar document.sendfrom.vname solo te limitaría a unos pocos navegadores como IE, incluso para que funcione en algunos IE necesitas un meta tag especial, ¡¿que te parece?!
  #8 (permalink)  
Antiguo 04/06/2010, 19:00
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Formulario que no comprueva los campos vacios... :S

Cita:
Iniciado por maycolalvarez Ver Mensaje
exactamente como te indique en el post anterior, ese modelo de llamado de objetos no es recomendable, usa siempre:

document.forms['sendfrom'].elements['vname'].value
En todas las veces??? diosss.... weeno...
Voy a hacerlo y provarlo, haber que tal..
  #9 (permalink)  
Antiguo 04/06/2010, 19:03
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Formulario que no comprueva los campos vacios... :S

te agregue más opciones mientras respondías ... están en el post anterior
  #10 (permalink)  
Antiguo 04/06/2010, 19:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Formulario que no comprueva los campos vacios... :S

Cita:
Iniciado por maycolalvarez Ver Mensaje
te agregue más opciones mientras respondías ... están en el post anterior
Merci por todo, pero sigue sin chekear las casillas, ni validar el email...

dice que el valor esta vacio... -> if (document.forms['sendfrom'].elements['vname'].value=="")



lo tengo en "http://www.b2tarquitectura.info/qui-som/index.html" si quieres escharle un vistazo.. yo me voy a suicidar tahora... xDD
  #11 (permalink)  
Antiguo 05/06/2010, 07:24
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Formulario que no comprueva los campos vacios... :S

No ay solucion?¿
  #12 (permalink)  
Antiguo 05/06/2010, 13:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Formulario que no comprueva los campos vacios... :S

Hola vuelvo a ser yo... Creo aver conseguido que funcione, aunque no funcione, el problema de antes es que el metod y el action lo metia en el formulario, ahora ya esta dentro del codigo de javascript, pero ahora no me lo envia el email, ni tampoco me alerta de los campos vacios o nulos,.. podeis debugearme?¿?

El codigo ahora es:

Código:
<script language="JavaScript">
function check()
{
  var checked=true;
  var pattern=/.*\@.*\..*/;
      if (checked)
  {
	  	    if (document.forms['sendfrom'].elements['vname'].value=="")
        {
		  document.forms['sendfrom'].elements['vname'].focus();
		  document.forms['sendfrom'].elements['vname'].select();
          alert ("Si us plau, ompli tots els camps.");
          checked=false;
        }
	  }
                    if (checked)
	  {
	    if (document.forms['sendfrom'].elements['nname'].value=="")
        {
		  document.forms['sendfrom'].elements['nname'].focus();
		  document.forms['sendfrom'].elements['nname'].select();
          alert ("Si us plau, ompli tots els camps.");
          checked=false;
        }
	  }
                if (checked)                       
	  {
	    if ((pattern.test(document.forms['sendfrom'].elements['email'].value))==false)
        {
		  document.forms['sendfrom'].elements['email'].focus();
		  document.forms['sendfrom'].elements['email'].select();
          alert ("Si us plau, introduïu una adreça correcta de correu electrònic.");
          checked=false;
        }
	  }
              if (checked)
	  {
	    if (document.forms['sendfrom'].elements['email'].value=="")
        {
		  document.forms['sendfrom'].elements['email'].focus();
		  document.forms['sendfrom'].elements['email'].select();
          alert ("Si us plau, ompli tots els camps.");
          checked=false;
        }
	  }
                    if (checked)             
	  {
	    if (document.forms['sendfrom'].elements['nachricht'].value=="")
        {
		  document.forms['sendfrom'].elements['nachricht'].focus();
		  document.forms['sendfrom'].elements['nachricht'].select();
          alert ("Si us plau, ompli tots els camps.");
          checked=false;
        }
	  }
        if (checked)
  {
    document.forms['sendfrom'].method="POST";
    document.forms['sendfrom'].action="w2dfgw.php";
	document.forms['sendfrom'].submit;
  }
  return checked;
} 
</script>
      
      <form name="sendform" onSubmit="return check()" enctype="application/x-www-form-urlencoded">
        <table border="0" cellpadding="0" cellspacing="0" width="310">
          <input type="hidden" name="fgwemail" value="[email protected]">
          
          <input type="hidden" name="fgwsubject" value="Formulari B2T">
          
          <input type="hidden" name="fgwreturnurl" value="0000009d890112f04.html">
          
          <tr>
            <td width="72" valign="top"><span class="grey">Nom</span></td>
            <td width="239" valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="vname" value=""><br></td>
            </tr>
          
          <tr>
            <td valign="top"><span class="grey">Cognom</span></td>
            <td valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="nname" value=""><br></td>
          </tr>
          
          <tr>
            <td valign="top"><span class="grey">E-Mail</span></td>
            <td valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="email" value=""><br></td>
          </tr>
          
          <tr>
            <td valign="top"><span class="grey">Missatge</span></td>
            <td valign="top"><textarea style="width: 200px;" cols="39" rows="7" class="normal" name="nachricht2"></textarea><br></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <br>
              </td>
            </tr>
          
          <tr>
            <td>&nbsp;</td>
            <td align="left"><input type="image" border="0" src="../images/w2dsbmt.gif" usemap="0"></td>
            </tr>
          </table>
         </form>
  #13 (permalink)  
Antiguo 05/06/2010, 13:32
Avatar de _cronos  
Fecha de Ingreso: abril-2010
Mensajes: 135
Antigüedad: 14 años
Puntos: 1
Respuesta: Formulario que no comprueva los campos vacios... :S

Esque tienes el mismo trozode código dos veces puesto, porque en los dos formularios los campos se llaman igual. y los propios formularios se llaman igual. Entonces al tener el mismo nombre no los valida, prueba a cambiarles el nombre.
__________________
'Dadme un punto de apoyo y moveré el mundo' - Arquímedes
Alianza DIOSES [-GOD-] Ikariam - Mundo Ny (s13)
  #14 (permalink)  
Antiguo 05/06/2010, 13:46
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Formulario que no comprueva los campos vacios... :S

aveces a no se le pierde la cabeza, colocaste mal los nombres, por ejemplo sendfrom en vez de sendform, de seguro esto te funciona:

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2. function check()
  3. {
  4.     var checked=true;
  5.     var pattern=/.*\@.*\..*/;
  6.     //PRIMER Y FUNDAMETAL ERROR EN LOS NOMBRES: sendfrom o sendform ???
  7.     if (checked)
  8.     {
  9.         if (document.forms['sendform'].elements['vname'].value=="")
  10.         {
  11.             document.forms['sendform'].elements['vname'].focus();
  12.             document.forms['sendform'].elements['vname'].select();
  13.             alert ("Si us plau, ompli tots els camps.");
  14.             checked=false;
  15.         }
  16.     }
  17.     if (checked)
  18.     {
  19.         if (document.forms['sendform'].elements['nname'].value=="")
  20.         {
  21.             document.forms['sendform'].elements['nname'].focus();
  22.             document.forms['sendform'].elements['nname'].select();
  23.             alert ("Si us plau, ompli tots els camps.");
  24.             checked=false;
  25.         }
  26.     }
  27.     if (checked)                      
  28.     {
  29.         if ((pattern.test(document.forms['sendform'].elements['email'].value))==false)
  30.         {
  31.             document.forms['sendform'].elements['email'].focus();
  32.             document.forms['sendform'].elements['email'].select();
  33.             alert ("Si us plau, introduïu una adreça correcta de correu electrònic.");
  34.             checked=false;
  35.         }
  36.     }
  37.     if (checked)
  38.     {
  39.         if (document.forms['sendform'].elements['email'].value=="")
  40.         {
  41.             document.forms['sendform'].elements['email'].focus();
  42.             document.forms['sendform'].elements['email'].select();
  43.             alert ("Si us plau, ompli tots els camps.");
  44.             checked=false;
  45.         }
  46.     }
  47.    
  48.     if (checked)            
  49.     {
  50.         //ERROR nmbres: nachricht2 o nachricht???
  51.         if (document.forms['sendform'].elements['nachricht2'].value=="")
  52.         {
  53.             document.forms['sendform'].elements['nachricht2'].focus();
  54.             document.forms['sendform'].elements['nachricht2'].select();
  55.             alert ("Si us plau, ompli tots els camps.");
  56.             checked=false;
  57.         }
  58.     }
  59.     //NO hace Falta
  60.     //if (checked)
  61.     //{
  62.         //document.forms['sendform'].method="POST";
  63.         //document.forms['sendform'].action="w2dfgw.php";
  64.         //document.forms['sendform'].submit;
  65.     //}
  66.     return checked;
  67. }
  68. </script>
  69.      
  70.       <form name="sendform" onSubmit="return check();" method="post" action="w2dfgw.php" enctype="application/x-www-form-urlencoded">
  71.         <table border="0" cellpadding="0" cellspacing="0" width="310">
  72.           <input type="hidden" name="fgwemail" value="[email protected]">
  73.          
  74.           <input type="hidden" name="fgwsubject" value="Formulari B2T">
  75.          
  76.           <input type="hidden" name="fgwreturnurl" value="0000009d890112f04.html">
  77.          
  78.           <tr>
  79.             <td width="72" valign="top"><span class="grey">Nom</span></td>
  80.             <td width="239" valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="vname" value=""><br></td>
  81.             </tr>
  82.          
  83.           <tr>
  84.             <td valign="top"><span class="grey">Cognom</span></td>
  85.             <td valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="nname" value=""><br></td>
  86.           </tr>
  87.          
  88.           <tr>
  89.             <td valign="top"><span class="grey">E-Mail</span></td>
  90.             <td valign="top"><input class="normal" style="width: 200px;" size="26" type="text" name="email" value=""><br></td>
  91.           </tr>
  92.          
  93.           <tr>
  94.             <td valign="top"><span class="grey">Missatge</span></td>
  95.             <td valign="top"><textarea style="width: 200px;" cols="39" rows="7" class="normal" name="nachricht2"></textarea><br></td>
  96.           </tr>
  97.           <tr>
  98.             <td>&nbsp;</td>
  99.             <td>
  100.               <br>
  101.               </td>
  102.             </tr>
  103.          
  104.           <tr>
  105.             <td>&nbsp;</td>
  106.             <!-- Como esperas que el form se envie si no hay un input tipo submit ?????, con esto se resuelve: -->
  107.             <td align="left"><input onclick="document.forms['sendform'].submit();" type="image" border="0" src="../images/w2dsbmt.gif" usemap="0"></td>
  108.             </tr>
  109.           </table>
  110.          </form>
  #15 (permalink)  
Antiguo 05/06/2010, 13:52
 
Fecha de Ingreso: mayo-2010
Mensajes: 50
Antigüedad: 13 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Formulario que no comprueva los campos vacios... :S

Cita:
Iniciado por _cronos Ver Mensaje
Esque tienes el mismo trozode código dos veces puesto, porque en los dos formularios los campos se llaman igual. y los propios formularios se llaman igual. Entonces al tener el mismo nombre no los valida, prueba a cambiarles el nombre.
SIIIIIIIIIIIIIIIII!!!!!!!!!! Diosssssssss por fin!!! Valeee, ahora el problema será que se envie... ... en El primer formulario No envia .. y el segundo tampoco, pero weno, metere el metod y action dentro del formulario y ya esta!!!


MUUUUUUUUUUUUUUUUUUUUUUUUUCHASSSSS GRACIAAAAAAAAASSSSS!!!!!!!!!!!!

  #16 (permalink)  
Antiguo 05/06/2010, 13:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Formulario que no comprueva los campos vacios... :S

no se envía porque no tienes un <input type="submit" /> que lo haga, pero lo puedes resolver manualmente como te indique en la línea:

Código Javascript:
Ver original
  1. <!-- Como esperas que el form se envie si no hay un input tipo submit ?????, con esto se resuelve: -->
  2. <td align="left"><input onclick="document.forms['sendform'].submit();" type="image" border="0" src="../images/w2dsbmt.gif" usemap="0"></td>
  #17 (permalink)  
Antiguo 05/06/2010, 14:08
Avatar de _cronos  
Fecha de Ingreso: abril-2010
Mensajes: 135
Antigüedad: 14 años
Puntos: 1
Respuesta: Formulario que no comprueva los campos vacios... :S

Pues yo tenía entendido que los image funcionaban igual que los submit, la única diferencia era que quedaban más 'vistosos'.
__________________
'Dadme un punto de apoyo y moveré el mundo' - Arquímedes
Alianza DIOSES [-GOD-] Ikariam - Mundo Ny (s13)
  #18 (permalink)  
Antiguo 05/06/2010, 14:21
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Formulario que no comprueva los campos vacios... :S

Cita:
Iniciado por _cronos Ver Mensaje
Pues yo tenía entendido que los image funcionaban igual que los submit, la única diferencia era que quedaban más 'vistosos'.
para algunos navegadores, en mi FF no me funciona, por ello es mejor y más seguro tener ese submit por medio del onclick
  #19 (permalink)  
Antiguo 05/06/2010, 15:13
Avatar de _cronos  
Fecha de Ingreso: abril-2010
Mensajes: 135
Antigüedad: 14 años
Puntos: 1
Respuesta: Formulario que no comprueva los campos vacios... :S

No si tienes razón, yo también uso Firefox y su input image no me funcionaba pero no me había dado cuenta de que había que poner un submit().
En fin, 'Nunca te acostarás sin saber una cosa más'.
Saludos (:
__________________
'Dadme un punto de apoyo y moveré el mundo' - Arquímedes
Alianza DIOSES [-GOD-] Ikariam - Mundo Ny (s13)

Etiquetas: formulario
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 10:46.