Foros del Web » Programando para Internet » Javascript »

validar formulario problemas

Estas en el tema de validar formulario problemas en el foro de Javascript en Foros del Web. hola muy buenas He creado un formulario con 4 campos uno tipo text otro contraseña, email y un selct el caso es que tengo liada ...
  #1 (permalink)  
Antiguo 17/05/2012, 11:57
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 9 meses
Puntos: 1
validar formulario problemas

hola muy buenas

He creado un formulario con 4 campos uno tipo text otro contraseña, email y un selct el caso es que tengo liada una en el form que ni yo me aclaro y al intentar validar el formulario tengo algunos problemas uno de ellos que cuando me sale el mensaje de alerta de validación del primer campo y le doy a aceptar este se me va a la pagina siguiente como si el form estuviese ya rellenado en vez de mantenerse paar seguir verificando los campos.

bueno el caso es que el java script de validación necesita 1000 arreglos para mejorarlo, pero creo que una de las causas es que para enviar los datos utilizo una pequeña funcion y creo que se debe pelear con la misma de validar, deduzco vaya no soy experta.

dejo el código para ver si alguien me puede guiar un poco gracias

cod form:

Código HTML:
Ver original
  1. <link href="estiloportada.css" rel="stylesheet" type="text/css" />
  2. <!--este script para hacer la llamada para colocar imagen en el select-->
  3. <script src="select.js" type="text/javascript"></script>  
  4. <link href="select.css" rel="stylesheet" type="text/css" />
  5.  <!--este script me comprueba que el campo tienda no se repita -->
  6. <script src="ajax.js"></script>
  7. <!--este script para hacer la llamada para validar campos de formulario1-->
  8. <script src="validaformindex.js" type="text/javascript"></script>
  9.  
  10.  
  11. <!--este script muestra las capas flotantes de los mensajes ocultos-->
  12. <script language="javascript" type="text/javascript">
  13.  
  14. opac=0
  15. goIn=null
  16.  
  17. function fade(dir, id){
  18. if(document.all){document.all(id).filters.alpha.Opacity=opac}
  19. if(document.getElementById && !document.all){document.getElementById(id).style.MozOpacity=(opac/100)-0.01}
  20. if(document.getElementById && !document.all){document.getElementById(id).style.KHTMLOpacity=(opac/100)-0.01}
  21. if(document.getElementById && !document.all){document.getElementById(id).style.opacity=(opac/100)-0.01}
  22. if(dir==1 && opac<=100){opac=opac+2} else{clearTimeout(goIn)}
  23. if(dir==0 && opac>=0){opac=opac-2} else{clearTimeout(goIn)}
  24. goIn=setTimeout("fade('" + dir + "', '" + id + "')", 0)
  25. }
  26.  
  27. </script>
  28.  
  29. <!--aqui este codigo para hacer una funcion de el boton de enviar del formulario para poder poner una imagen de sustitucion-->
  30. <SCRIPT language="Javascript">
  31. function enviar() {
  32. document.form1.submit();
  33. }
  34.  
  35.  
  36. <!--ocultar y mostrar una capa al clicar un boton -->
  37. <script language="Javascript">  
  38. function mostrar(nombreCapa){  
  39. document.getElementById(nombreCapa).style.visibility="visible";  
  40. }  
  41. function ocultar(nombreCapa){  
  42. document.getElementById(nombreCapa).style.visibility="hidden";  
  43. }  
  44. </script>
  45.  
  46.  
  47.  
  48.  
  49.  <form action="datoscliente.php" method="post" name="form1" id="form1">
  50.   <fieldset id="form">
  51.     <table width="248" align="center">
  52.       <tr valign="baseline">
  53.         <td colspan="2" align="left" nowrap="nowrap">
  54.           <label >Nombre de tu tienda:</label>
  55.         </td>
  56.         </tr>
  57.       <tr valign="baseline">
  58.         <td height="35" colspan="2" align="right" nowrap="nowrap">
  59.           <div id="muestra" onclick="fade(1, 'fadimg')"  onblur="fade(0, 'fadimg')">
  60.             <input class="texto" type="text" name="tienda" value="" size="32" onblur="busca(this.form.tienda.value)" />
  61.           </div>
  62.           <!--este div muestra la vinyeta del primer campo de formulario-->
  63.           <div id="fadimg" style="filter:alpha(Opacity=0); -moz-opacity:0; -khtml-opacity:0; opacity:0">  </div>        </td>
  64.         </tr>
  65.       <tr valign="baseline">
  66.         <td colspan="2" align="left" nowrap="nowrap"><label >Email:</label></td>
  67.         </tr>
  68.       <tr valign="baseline">
  69.         <td colspan="2" align="right" nowrap="nowrap">
  70.           <input class="texto" name="email" type="text" id="email" value="" size="32" onclick="fade(1, 'fadimg1')" onblur="fade(0, 'fadimg1')" /><br />
  71.  
  72.           <!--este div muestra la vinyeta del segundo campo de formulario-->
  73.           <div id="fadimg1" style="filter:alpha(Opacity=0); -moz-opacity:0; -khtml-opacity:0; opacity:0"></div>        </td>
  74.         </tr>
  75.       <tr valign="baseline">
  76.         <td width="204" align="left"><label >Contraseña:</label></td>
  77.       </tr>
  78.       <tr valign="baseline">
  79.         <td colspan="2" align="right" nowrap="nowrap"><input type="password" name="pasword" value="" size="32" /></td>
  80.         </tr>
  81.       <tr valign="baseline">
  82.         <td colspan="2" align="left" nowrap="nowrap"><label >Tipo_de_tienda:</label></td>
  83.         </tr>
  84.       <tr valign="baseline">
  85.         <td colspan="2" align="left" nowrap="nowrap"><select name="tipo_de_tienda" class="styled">
  86.        
  87.           <option>Alimentación</option>
  88.           <option>Arte</option>
  89.           <option>Artesania</option>
  90.          
  91.         </select></td>
  92.         </tr>
  93.       <tr valign="baseline">
  94.         <td colspan="2" align="left" nowrap="nowrap"><br />
  95.    
  96.    
  97.      <a href= "javascript:enviar()" onclick="valida_envia()"
  98.         onmouseOver="document.enviar.src='imagenes/botonform1.png';"    
  99.         onmouseOut="document.enviar.src='imagenes/botonform.png';">
  100.            
  101.             <img src="imagenes/botonform.png" name="enviar" width="205"border="0">
  102.             </a>  
  103.                </td>
  104.         </tr>
  105.     </table>
  106.     </fieldset>
  107.   </form>

bueno y la pag validarformindex.js para validar los campos

Código Javascript:
Ver original
  1. function valida_envia(){
  2.     //valido el nombre
  3.     if (document.form1.tienda.value.length==0){
  4.          alert("Tiene que escribir el nombre de su tienda")
  5.          document.form1.tienda.focus()
  6.         return false;
  7.     }
  8.     //valido email
  9.     if(document.form1.email.value.length==0) { //comprueba que no esté vacío
  10.         alert('No has escrito tu e-Mail');
  11.         document.form1.email.focus();
  12.         return false;
  13.   }
  14.  
  15.    
  16.  
  17.     //valido tipo de tienda
  18.     if (document.form1.tipo_de_tienda.selectedIndex==0){
  19.          alert("Debe seleccionar un tipo de tienda.")
  20.          document.form1.tipo_de_tienda.focus()
  21.         return false;
  22.     }
  23.  
  24.     //el formulario se envia
  25.     alert("Muchas gracias por enviar el formulario");
  26.     document.form1.submit();
  27. }

me faltaría validar la contraseña pero en principio solo me valida tienda y email y de esa manera por que solo comprueba si están vacíos los campos

no se si alguien puede ayudarme un poco gracias

Última edición por carolina3; 17/05/2012 a las 12:05
  #2 (permalink)  
Antiguo 17/05/2012, 13:07
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: validar formulario problemas

@Carolina3

Esto es un "desaguisado"
<a href= "javascript:enviar()" onclick="valida_envia()"
onmouseOver="document.enviar.src='imagenes/botonform1.png';"
onmouseOut="document.enviar.src='imagenes/botonform.png';">

Sin detenerme a revisar tus funciones de validación y envío
se debería hacer asi

Código HTML:
Ver original
  1. <form ...... onsubmit="return valida_envia();">
  2.  
  3. <input type="submit" name="procesar" value="Enviar" class="envio" />
  4. </form>
La función enviar, obviala, y si queres una imagen en el boton en value="Enviar" ponés value="." yluego lo estilizás con css, por ejemplo

Código CSS:
Ver original
  1. input.envio{
  2. width: 25px;
  3. height: 25px;
  4. background-image: url(boton.jpg);
  5. border: none;
  6. color: transparent;
  7. }
  8.  
  9. input.envio:hover{
  10. background-image: url(boton_over.jpg);
  11. }
El css se puede mejorar haciendo un pequeño sprite para los 2 estados

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 17/05/2012, 13:17
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: validar formulario problemas

emprear muchas gracias voy aprobar, ami me parecía ya que todo venia por la función enviar que le doy al href: pero no sabia que hacer, gracias pruebo y te cuento.
  #4 (permalink)  
Antiguo 17/05/2012, 13:28
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: validar formulario problemas

funciona bien solo que en la imagen del botón se ve el fondo blanco y antes no por que puede ser si es una imagen .png de todas formas gracias esta mejor como me has indicado.
  #5 (permalink)  
Antiguo 17/05/2012, 15:34
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: validar formulario problemas

acá hay un ejemplo de lo que te mencioné
http://foros.emprear.com/css/over_input/over_input.html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: ajax, formulario, funcion, html, input, js, php, botones
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 16:42.