2012-04-18 32 views
5

Tengo una página JSF 2.0 que usa Primefaces p: componente de diálogo. El usuario puede ingresar información en el cuadro de diálogo y hacer clic en guardar/cancelar. Si tienen un error de validación, se muestra en el cuadro de diálogo. Cuando cierran o cancelan el diálogo, quiero que todos los componentes de p: message se "eliminen", es decir, si el usuario vuelve a abrir el cuadro de diálogo, no verán los mensajes de validación anteriores.Cómo borrar p: mensaje de p: diálogo al cerrar?

El caso de uso es: el usuario abre el cuadro de diálogo, no llena todos los campos obligatorios, hace clic en Guardar, los mensajes de error de campo requeridos se muestran en el cuadro de diálogo. El usuario hace clic en cancelar, lo que cierra el cuadro de diálogo. El usuario luego hace clic en el botón para abrir nuevamente el diálogo. No quiero que vean los mensajes de validación previos (que actualmente pueden).

Respuesta

6

Ajax: actualice el componente de diálogo antes de abrirlo.

E.g.

<p:commandButton ... update=":dialog" oncomplete="dialog.open()" /> 

No solo borrará los mensajes, sino también los valores de campo de entrada (o al menos los conservará con los valores predeterminados correctos).

+0

Gracias-- ¡funciona como un encanto! – BestPractices

+0

De nada :) – BalusC

+0

¿Qué sucede si también quiero borrar los valores del campo de entrada? (Esto no parece hacerlo) – BestPractices