Foros del Web » Programando para Internet » Javascript »

validar form

Estas en el tema de validar form en el foro de Javascript en Foros del Web. Hola, tengo para un formulario tres funciones, uno onload, uno toogle y otro onsubmit: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script type = ...
  #1 (permalink)  
Antiguo 24/11/2013, 11:31
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
validar form

Hola, tengo para un formulario tres funciones,
uno onload, uno toogle y otro onsubmit:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.  function onload() {
  3.                   document.getElementById("uno").style.display = "block";
  4.                   document.getElementById("dos").style.display = "none";
  5. document.getElementById("tres").style.display = "none";
  6.  }
  7.  
  8.             function toggle(elemento) {
  9.               if(elemento.value=="1") {
  10.                   document.getElementById("uno").style.display = "block";
  11.                   document.getElementById("dos").style.display = "none";
  12.                   document.getElementById("tres").style.display = "none";
  13.                }
  14.                else{
  15.                    if(elemento.value=="2"){
  16.                        document.getElementById("uno").style.display = "none";
  17.                        document.getElementById("dos").style.display = "block";
  18.                        document.getElementById("tres").style.display = "block";
  19.                    }
  20.                 }
  21.                  }
  22.                  
  23.     function OnSubmitForm()
  24. {
  25. if(document.choise.a[0].checked == true)
  26.  {
  27.  document.searcherform.action="http://www.mysite.com/searchtest.php?z=z&d=d&t=t&s=s&day=day&month=month&day2=day2&month2=month2&e=e"
  28.  }
  29.  else
  30.   if(document.choise.a[1].checked == true)
  31.  {
  32.  document.searcherformsales.action="http://www.mysite.com/sales/searchtest.php?z=z&t=t&b=b&p=p&p1=p1&enviar=enviar"
  33.  document.searcherformsales2.action="http://www.mysite.com/sales/searchtest.php?id=id&enviarid=enviarid"
  34.  }
  35.  return true;
  36.  }                           
  37.     </script>

Ahora necesito hacer una validación, y es en el document.searchform y en el primer choise,
este es el validador:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. <!--
  3.  
  4. function validate_form ( )
  5. {
  6.     valid = true;
  7.  
  8.  
  9.         if ( ( document.searcherform.s[0].checked == false ) && ( document.searcherform.s[1].checked == false ) )
  10.         {
  11.                 alert ( "Please choose all dates or selected dates" );
  12.                 valid = false;
  13.         }
  14.  
  15.  
  16.         return valid;
  17. }
  18.  
  19. //-->
  20.  
  21. </script>

Creo que debe de ir anidadas ya que son dos formularios, quiero poner la funcion validate form dentro de esto ya que es en este formulario donde está:
Código Javascript:
Ver original
  1. function OnSubmitForm()
  2. {
  3. if(document.choise.a[0].checked == true)
  4.  {
  5.  document.searcherform.action="http://www.mysite.com/searchtest.php?z=z&d=d&t=t&s=s&day=day&month=month&day2=day2&month2=month2&e=e"
  6.  }

Última edición por helenp; 24/11/2013 a las 11:46
  #2 (permalink)  
Antiguo 24/11/2013, 12:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: validar form

en el form debe de poner ambas funcionas algo asi:
<form id="uno" style="display:none" name="searcherform" onsubmit="return OnSubmitForm()&& validate_form ( );">


Si quito la funcion de validar y lo meto dentro de la otra funcion asi:
Código Javascript:
Ver original
  1. if(document.choise.a[0].checked == true)
  2.  {
  3.  
  4.         if ( ( document.searcherform.s[0].checked == false ) && ( document.searcherform.s[1].checked == false ) )
  5.         { alert ( "Please choose all dates or selected dates" );}
  6.  
  7.  document.searcherform.action="http://www.marbellasunrentals.com/searchtest.php?z=z&d=d&t=t&s=s&day=day&month=month&day2=day2&month2=month2&e=e"
  8.  }
me da la ventana de alert, pero sigo con el action.
que debo de añadir para que de false y no siga con el proximo paso?
  #3 (permalink)  
Antiguo 24/11/2013, 12:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: validar form

Hola:

Te faltaría mostrar el formulario...

No estoy a favor de asignar un action con javascript... conviertes a tu formulario en no-accesible... si no quieres enviarlo simplemente cancélalo (return false)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 24/11/2013, 13:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: validar form

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Te faltaría mostrar el formulario...

No estoy a favor de asignar un action con javascript... conviertes a tu formulario en no-accesible... si no quieres enviarlo simplemente cancélalo (return false)

Saludos
Gracias,
wow, funciona, no sé javascript, solo intento adjuntar puzzles :)
if ( ( document.searcherform.s[0].checked == false ) && ( document.searcherform.s[1].checked == false ) )
{ alert ( "Please choose all dates or selected dates" );
return false
}
Yo tampoco estoy a favor, pero necesito tener dos (tres) formularios en uno y tener 3 botones submit, pues queda enorme, si sabes alguna solución mejor.
Asi se me cambia formulario al seleccionar radiobutton.
Tendré que hacer un noscript con alguna solución.
Se sabé que cantidad tienen javascript desactivado?

Este es el script con el formulario entero y funcionando:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.  function onload() {
  3.                   document.getElementById("uno").style.display = "block";
  4.                   document.getElementById("dos").style.display = "none";
  5. document.getElementById("tres").style.display = "none";
  6.  }
  7.  
  8.             function toggle(elemento) {
  9.               if(elemento.value=="1") {
  10.                   document.getElementById("uno").style.display = "block";
  11.                   document.getElementById("dos").style.display = "none";
  12.                   document.getElementById("tres").style.display = "none";
  13.                }
  14.                else{
  15.                    if(elemento.value=="2"){
  16.                        document.getElementById("uno").style.display = "none";
  17.                        document.getElementById("dos").style.display = "block";
  18.                        document.getElementById("tres").style.display = "block";
  19.                    }
  20.                 }
  21.                  }
  22.                  
  23.     function OnSubmitForm()
  24. {
  25. if(document.choise.a[0].checked == true)
  26.  {
  27.  
  28.         if ( ( document.searcherform.s[0].checked == false ) && ( document.searcherform.s[1].checked == false ) )
  29.         { alert ( "Please choose all dates or selected dates" );
  30.         return false
  31.         }
  32.  
  33.  document.searcherform.action="http://www.mysite.com/searchtest.php?z=z&d=d&t=t&s=s&day=day&month=month&day2=day2&month2=month2&e=e"
  34.  }
  35.  else
  36.   if(document.choise.a[1].checked == true)
  37.  {
  38.  document.searcherformsales.action="http://www.mysite.com/sales/searchtest.php?z=z&t=t&b=b&p=p&p1=p1&enviar=enviar"
  39.  document.searcherformsales2.action="http://www.mysite.com/sales/searchtest.php?id=id&enviarid=enviarid"
  40.  }
  41.  return true;
  42.  }                           
  43.     </script>
  44. <p class="searchertext2">Search for rental and sales properties</p>
  45. <form name="choise">
  46. <p class="searchertext bold">
  47.   <input name="a" type="radio" onclick="toggle(this)" value="1"  checked>Rentals&nbsp;
  48.   <input name="a" type="radio" onclick="toggle(this)"  value="2">Sales
  49.   </p>
  50.   </form>
  51. <form id="uno" style="display:none" name="searcherform" onsubmit="return OnSubmitForm()">
  52. <p class="searchertext">Area: &nbsp;&nbsp;&nbsp;<select name="z" class="area">
  53.   <option selected value="any">Any</option>
  54.     <option value="M">Marbella</option>
  55.  <option value="MC">Marbella Town</option>
  56.  <option value="GM">Golden Mile</option>
  57. <option value="GM">Marbella West</option>
  58. <option value="ME">Marbella East</option>
  59.   <option value="PB">Puerto Banus</option>
  60.   <option value="NA">Nueva Andalucia</option>
  61.     <option value="SP">San Pedro</option>
  62.  
  63. </select></p>
  64. <p class="searchertext">Property: <select name="t" class="tipocasa">
  65. <option selected value="anytype">Any</option>
  66. <option value="apartment">Apartments/flats</option>
  67. <option value="villa">Villas/town houses</option>
  68.  
  69. </select></p>
  70. <p class="searchertext">Sleeps: <select name="d" class="duermen">
  71. <option selected value="1">1</option>
  72. <option value="2">2</option>
  73.  <option value="3">3</option>
  74.   <option value="4">4</option>
  75.   <option value="5">5</option>
  76.   <option value="6">6</option>
  77.   <option value="7">7</option>
  78.   <option value="8">8</option>
  79.   <option value="9">9</option>
  80.    <option value="10">10</option>
  81.      <option value="11">11</option>
  82.        <option value="12">12</option>
  83.        <option value="13">13</option>
  84.        <option value="14">14</option>
  85. </select></p>
  86. <p class="searchertext">
  87.   <input name="s" type="radio" value="nodates">All dates&nbsp;
  88.   <input name="s" type="radio" value="dates">Selected dates
  89. </p>
  90. <p class="searchertext">Arrival:<br><?php include("includes/day.php"); ?>&nbsp;<?php include("includes/month.php"); ?>
  91. </p>
  92. <p class="searchertextlast">Departure:<br><?php include("includes/day2.php"); ?>&nbsp;<?php include("includes/month2.php"); ?></p>
  93. <p align="center"><input class="boton roundedcorner border"type="submit" style="width: 90px;"  name="e" value="Search"> </p>
  94. </form>
  95. <form id="dos" style="display:none" onsubmit="return OnSubmitForm();" name="searcherformsales" >
  96. <p class="searchertext">Area: &nbsp;&nbsp;&nbsp;<select name="z" class="area">
  97.   <option selected value="any">Any</option>
  98.     <option value="M">Marbella</option>
  99.  <option value="MC">Marbella Town</option>
  100.  <option value="GM">Golden Mile</option>
  101. <option value="GM">Marbella West</option>
  102. <option value="ME">Marbella East</option>
  103.   <option value="PB">Puerto Banus</option>
  104.   <option value="NA">Nueva Andalucia</option>
  105.     <option value="SP">San Pedro</option>
  106.  
  107. </select></p>
  108. <p class="searchertext">Property: <select name="t" class="tipocasa">
  109. <option selected value="anytype">Any</option>
  110. <option value="apartment">Apartments/flats</option>
  111. <option value="villa">Villas/town houses</option>
  112.  
  113. </select></p>
  114. <p class="searchertext">Bedrooms: <select name="b" class="duermen">
  115. <option selected value="1">1</option>
  116. <option value="2">2</option>
  117.  <option value="3">3</option>
  118.   <option value="4">4</option>
  119.   <option value="5">5</option>
  120.   <option value="6">6</option>
  121. </select></p>
  122.  
  123. <p class="searchertextlast">From:&nbsp;&nbsp;&nbsp; <select name="p1" class="price">
  124. <option selected value="100000">No minimum</option>
  125. <option value="100000">€100.000</option>
  126. <option value="300000">€300.000</option>
  127. <option value="500000">€500.000</option>
  128. <option value="700000">€700.000</option>
  129. <option value="1000000">€1.000.000</option>
  130. <option value="3000000">€3.000.000</option>
  131. <option value="5000000">€5.000.000</option>
  132. <option value="7000000">€7.000.000</option>
  133. <option value="10000000">€10.000.000</option>
  134.  
  135. </select><br><br>
  136. To:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <select name="p" class="price">
  137. <option selected value="100000000">No maximum</option>
  138. <option value="300000">€300.000</option>
  139. <option value="500000">€500.000</option>
  140. <option value="700000">€700.000</option>
  141. <option value="1000000">€1.000.000</option>
  142. <option value="3000000">€3.000.000</option>
  143. <option value="5000000">€5.000.000</option>
  144. <option value="7000000">€7.000.000</option>
  145. <option value="10000000">€10.000.000</option>
  146.  
  147. </select></p>
  148. <p align="center"><input class="boton roundedcorner border"type="submit" style="width: 90px;"  name="enviar" value="Search"> </p>
  149. </form>
  150. <form name="searcherformsales2" id="tres" style="display:none" onsubmit="return OnSubmitForm();" >
  151. <p class="searchertext4">Reference: <input type="Text" name="id" size="8"></p>
  152. <p align="center"><input class="boton roundedcorner border"type="submit" style="width: 135px;"  name="enviarid" value="Search by reference"> </p>
  153. </form>
  #5 (permalink)  
Antiguo 24/11/2013, 13:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: validar form

Hola:

No parece ser tan extenso como para usar tres formularios... y cuando no se pone el método significa que es get (envío por url), así que al action se le añade el carácter "?" seguido de las parejas nombre_de_variable=valor_de_la_variable... y que estás poniendo en el action...

Te aconsejaría hacerlo más sencillo y sin depender de javascript. Y luego, cuando funcione sin javascript dedicarte a la adaptación del lenguaje.

Por lo pronto yo usaría un solo formulario

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 24/11/2013, 14:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: validar form

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

No parece ser tan extenso como para usar tres formularios... y cuando no se pone el método significa que es get (envío por url), así que al action se le añade el carácter "?" seguido de las parejas nombre_de_variable=valor_de_la_variable... y que estás poniendo en el action...

Te aconsejaría hacerlo más sencillo y sin depender de javascript. Y luego, cuando funcione sin javascript dedicarte a la adaptación del lenguaje.

Por lo pronto yo usaría un solo formulario

Saludos
Gracias,
Lo quiero por get para que puedan compartir las busquedas, a menudo lo hacian antes cuando lo tenia por post.
Estos formularios ya estan funcionando con php,
lo que he hecho es un rediseño de la web donde junto dos secciones,
ventas y alquiler, pues tengo dos formularios con dos distintos actions. No veo como se puede hacer con un formulario solo,
ya que hay inputs que solo son para ventas y otros que solo son para alquileres.

No es extenso en el formulario, sino en la maquetación, se ve muy lioso, porque son dos formularios, uno para ir a pagina resultados alquileres y otro para ir a resultado pagina ventas, y ventas ademas tiene una busqueda por id.
No queda bien tenerlo todo junto en el diseño que tengo ya que hay inputs que no debe de rellenarse para ventas y lo mismo para alquileres.
  #7 (permalink)  
Antiguo 24/11/2013, 16:30
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: validar form

Cita:
Iniciado por caricatos Ver Mensaje
No estoy a favor de asignar un action con javascript... conviertes a tu formulario en no-accesible...
Hola,
Me gustaría asegurar con no-accesible te refieres a los que tienen javascript deshabilitado o hay algo más.

Es que en un noscript puedo poner el formulario de alquiler en la seccion de alquileres y el de ventas en la seccion de ventas como tengo actualmente, y con un enlace al otro formulario.
Con un .css alternativo quizas consiga presentar un formulario accesible para los que lo tiene desactivado,
consiguiendo esto pues no veo mayor problema.
No tengo mucho experiencia en hacerlo pero lo veo posible, o me equivoco?
Gracias

Etiquetas: form, formulario, funcion, php
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 08:08.