miércoles, 9 de abril de 2014

Spring Web Flow - Prevenir el doble click cuando enviamos un formulario html pero sin dejar de enviar el botón presionado

En la mayoría de aplicaciones muchas veces es necesario des-habilitar el botón tipo submit del un formulario html que se encarga de captura de datos para posteriormente persistir estos en la base de datos.

En mi caso particular desarrollando una aplicación utilizando spring web flow, me fue necesario des-habilitar el botón que enviaba el formulario al servidor pero resulta que al des-habilitar el botón, este no es enviado con el formulario y para mi caso, spring web flow necesita saber el nombre del botón presionado para saber por donde continuar su flujo en el archivo de configuración del flujo.

Extracto de mi archivo de configuración del flujo:

 
  
  
  
 

 
  
  
  
 

 
  
 

Pueden observar que en el estado de la vista form-datos-envio, tenemos una transicion de nombre save la cual ejecutara la accion de guardar.

Para hacer esto, create una funcion que valide el formulario al momento del submit y utilizare jquery en la vista conjuntamente con un input hidden en el cual guardare el nombre del botón presionado y así poder des-habilitar el botón pero enviar su nombre mediante un campo oculto.

Botones necesarios en la vista:

    
    

    
    

    
    

Campo oculto donde almacenare el valor del boton presionado:



Jquery:

 

Validacion del formulario en el evento onsubmit:

  

No hay comentarios:

Publicar un comentario