Foros del Web » Programando para Internet » Jquery »

Validar funciones antes de enviar form

Estas en el tema de Validar funciones antes de enviar form en el foro de Jquery en Foros del Web. Estoy tratando de que el usuario no pueda dar submit hasta tanto se cumplan las condiciones dadas en las funciones, pero no funciona. Este es ...
  #1 (permalink)  
Antiguo 19/12/2012, 09:43
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Pregunta Validar funciones antes de enviar form

Estoy tratando de que el usuario no pueda dar submit hasta tanto se cumplan las condiciones dadas en las funciones, pero no funciona. Este es mi código:

Código Javascript:
Ver original
  1. $(document).ready(function()
  2.     {
  3. $("#form1").submit(function() {    
  4.    $("#datepicker").datepicker();
  5.     }
  6. );
  7.  
  8. $("#datepicker_1").datepicker({ minDate: new Date() });
  9.  
  10. var datepicked = function() {
  11. var n_noches=  "<?php echo $n_noches; ?>";
  12. var from = $('#datepicker_1');          
  13. var to = $('#datepicker_2');          
  14. var diferencia = $('#diferencia');
  15.                                
  16. var fromDate = from.datepicker('getDate')
  17. var toDate = to.datepicker('getDate')
  18. if (toDate && fromDate) {
  19.     var difference = 0;
  20.     var oneDay = 86400000; //ms per day
  21.     var difference = Math.ceil((toDate.getTime() - fromDate.getTime()) / oneDay);
  22.     diferencia.val(difference);            
  23. }
  24.     if(difference > n_noches){
  25.     alert('el numero de noches no puede ser mayor a ' + n_noches +' noches');
  26.     return false;  
  27.     }
  28.    
  29.     var desde = "<?php echo $desde2; ?>";
  30.     var hasta = "<?php echo $hasta2; ?>";
  31.        
  32.     var desde_plan= <?php echo $php_ini; ?>; // Quita las comillas para que sea un entero
  33.     var hasta_plan= <?php echo $php_fin; ?>; // Igual aquí
  34.  
  35.     // Yo preferiría buscar por id, por compatibilidad entre navegadores
  36.     var llegada1 = document.getElementById('datepicker_1').value;
  37.    // Y ya que estás usando jquery, puedes hacerlo así:
  38.     var salida1 = document.getElementById('datepicker_2').value;
  39.        
  40.     var llegadas = llegada1.split("/");
  41.  
  42.     var ano =llegadas[0];
  43.     var mes =llegadas[1];
  44.     var dia =llegadas[2];
  45.  
  46.     var fecha1 = dia+"/"+mes+"/"+ano;
  47.  
  48.     var salidas = salida1.split("/");
  49.  
  50.     var ano1 =salidas[0];
  51.     var mes1 =salidas[1];
  52.     var dia1 =salidas[2];
  53.  
  54.     var fecha2 = dia1+"/"+mes1+"/"+ano1;
  55.  
  56.     var js_ini = new Date(fecha1).getTime()/1000;
  57.     var js_fin = new Date(fecha2).getTime()/1000;
  58.     // Compruebas si los números a comparar están correctos
  59.         if(js_fin > hasta_plan) {
  60.         alert('Fecha seleccionada fuera de rango, seleccionar fechas entre '+ desde +' hasta ' + hasta);
  61.         document.form1.llegada.focus();
  62.         return false;
  63.         }
  64.                
  65.     }          
  66.     $(function() {                                    
  67.     $('#datepicker_1, #datepicker_2').datepicker({                        
  68.     onSelect: datepicked  
  69.         });                
  70.        
  71.     });  
  72.  
  73.     });  
  74.  
  75.  
  76. function Sumar(sel1, sel2, sel3){
  77.     var total;
  78.     var sel1 = document.getElementById("adultos").value;
  79.     var sel2 = document.getElementById("ctdad_ninos_me").value;
  80.     var sel3 = document.getElementById("ctdad_ninos_may").value;
  81.     resultado = parseInt(sel1) + parseInt(sel2) + parseInt(sel3);
  82.     document.getElementById('Resultado').value = resultado;
  83. }

Por favor me pueden explicar como lo puedo hacer

gracias
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 20/12/2012, 06:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Validar funciones antes de enviar form

por lo que veo sólo validas la fecha en el onselect del datepicker, deberías tambian utilizar la misma función en el submit del formulario, si retorna false el mismo no se envía.

PD: recuerda que la validación en JS es opcional (cliente), para mayor seguridad debes validar igual en el servidor
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: funcion, funciones, js, php, 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 04:59.