Quiero advertir al usuario de cualquier información no guardada en un formulario antes de que haga clic en un enlace para navegar fuera de la página actual, sin guardar. ¿Cuál sería un mejor enfoque para lograr esto en JSF, por lo que esta comprobación se realiza en un solo lugar para todas las páginas. Cualquier sugerencia es apreciada.Avisar al usuario de los datos no guardados en JSF
Respuesta
Lo que puede hacer es agregar un clic a todos sus enlaces. Con jQuery que podría hacer lo siguiente:
$($('a').click(function(){
if(unsavedWork){
return confirm("You have not saved your work, would you like to leave anyway?");
}else{
return true;
}
}););
La aplicación JSF norma no proporciona facilidades para esto de la caja. Además, esto es más un problema del lado del cliente que un problema del lado del servidor, por lo que realmente tendrá que tomar un lenguaje del lado del cliente para esto, como JavaScript. Dado que escribir un código JavaScript compatible con navegador cruzado para este requisito funcional particular no es exactamente trivial, le gustaría usar una biblioteca de JavaScript para esto que tenga esto en cuenta, como jQuery.
Aquí hay un ejemplo completo de cómo se puede lograr esto con la ayuda de jQuery.
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
// Set the unload message whenever any input element get changed.
$(':input').change(function() {
setConfirmUnload(true);
});
// Turn off the unload message whenever a form get submitted properly.
$('form').submit(function() {
setConfirmUnload(false);
});
});
function setConfirmUnload(on) {
var message = "You have unsaved data. Are you sure to leave the page?";
window.onbeforeunload = (on) ? function() { return message; } : null;
}
</script>
basta con pegar esto en su plantilla <head>
(y preferiblemente también refactorizar que prima <script>
código en su propio archivo .js
así, que se incluye por src
atributo) y se va a trabajar independientemente de la página que tiene.
- 1. Datos de sesión PHP no guardados
- 2. ¿Cómo detectar datos no guardados en el formulario cuando el usuario abandona la página?
- 3. Cliente/JS Framework para la protección de "datos no guardados"?
- 4. Manipulación de Firefox de los datos de formulario guardados
- 5. ¿Cómo ver los datos guardados en la base de datos de Android (SQLite)?
- 6. Navegando y editando datos de formularios guardados en Firefox
- 7. Cómo alinear los componentes JSF al centro
- 8. ¿Cómo se determinan los valores guardados en la pila?
- 9. Práctica recomendada para advertir al usuario de que perderán datos
- 10. JSF Almacenamiento de datos en una cookie
- 11. Android - Los datos de usuario de limpieza AVD no funcionan
- 12. javax.faces.FacesException: Error al descodificar los datos de recursos durante la carga de la página JSF
- 13. Los cambios guardados de un NSManagedObjectContext no se reflejan en el NSManagedObjectContext principal
- 14. Cómo mostrar los datos en dirección horizontal usando JSF dataTable
- 15. ¿Por qué no Entity Framework consultas devuelven entidades no guardados
- 16. ¿Cómo trabajar con relaciones de muchos a muchos no guardados en django?
- 17. carga lenta no funciona cuando en nuevos objetos guardados, (al subir desde el contexto en el que los salvó)
- 18. Renderizar el componente JSF en función del rol de usuario
- 19. Forzar GVim para avisar antes de cerrar
- 20. MKMapView Mostrar Guardados incorrectamente región
- 21. ¿Cómo incluir todos los CSS guardados en un directorio?
- 22. Colocación horizontal de los componentes en JSF
- 23. Pasar datos entre componentes gestionados en JSF
- 24. APC no almacena en caché los archivos, pero almacena en caché los datos del usuario
- 25. Uso de Rails ActiveRecord para consultar objetos no guardados
- 26. variables de sesión no parecen estar guardados código
- 27. ¿Los archivos están guardados en el volumen de EBS? ¿No se supone que deben ser salvados? Estoy confundido
- 28. diseño del último registro en una tabla de datos jsf
- 29. El envío de formulario UTF-8 en JSF está dañando los datos
- 30. alternativa a la interfaz de usuario: fragmento de JSF
Si está utilizando PrimeFaces, elimine la secuencia de comandos que carga jQuery. jQuery se incluye con PrimeFaces y se carga cuando utiliza los componentes de PrimeFaces en una página. Consulte [Cómo agregar jQuery a los resultados de PrimeFaces en Unkeught TypeErrors] (http://stackoverflow.com/questions/16166039/adding-jquery-to-primefaces-results-in-uncaught-typeerror-over-all-place) –