Primefaces ConfirmDialog

9 respostas
D

Possuo campos que não podem estar vazios em meu formulário. Se nenhum campo estiver vazio ao submeter o formulário, é exibido um confirm dialog para o usuário confirmar a inclusao do cadastro.
So que quando eu submeto o formulário em branco, ele mostra os erros e ainda sim abre o confirm dialog.
Como faço para abrir o confirm dialog somente se nao houver nenhum erro?

<p:messages globalOnly="true" autoUpdate="true" />

<h:form id="form1">

	<p:confirmDialog id="confirmation" styleClass="fonteNormal"
		message="Salvar os dados?" header="Aviso"
		severity="alert" widgetVar="confirmation" width="300">
		<center>
			<p:commandButton action="#{bean.salvar}"
				oncomplete="confirmation.hide()" value="Sim" />
			<p:commandButton oncomplete="confirmation.hide()" value="Não" />
		</center>
	</p:confirmDialog>
	
	<h:panelGrid columns="3" cellspacing="2" cellpadding="2"
		id="panelGrid">

		<h:outputText value="Nome:" />
		<p:inputText id="nome" required="true"
			value="#{bean.nome}" requiredMessage="Digite o nome" />
		<p:message for="nome" />
		
		<h:outputText value="CPF:" />
		<p:inputText id="cpf" required="true"
			value="#{bean.cpf}" requiredMessage="Digite o CPF" />
		<p:message for="cpf" />
		
	</h:panelGrid>
	
	<p:commandButton value="Salvar"
		oncomplete="confirmation.show();" update="form1" />
	
</h:form>

9 Respostas

F

Eae dandao…

num sei se resolve… mto provavel que seja problema com o seu ajax… pq ele atualiza o tudo que está no form… inclusve a mensagem…

testa o seguinte…

no lugar de

update="form1"

coloca assim

update="panelGrid"

flwww

F

Tava pensando agora… se o botão ficar sem ação… atribua um id pra ele e coloque no update tbm…

D

Eae Furlani…nao funcionou ainda…rsrsrs continua abrindo o confirmdialog junto c as mensagens de erro.

A

Precisa fazer a verificação com javascript:

<p:commandButton value="Salvar"  
        oncomplete="handleComplete(xhr, status, args)" update="form1" />  


<script type="text/javascript">  
function handleComplete(xhr, status, args) {  
    //verifica se passou na validação
    if(!args.validationFailed) {  
        confirmation.show();
    } 
}  
</script>
D

Vlw cara…era isso mesmo…funcionou direitinho aki…vlw Abraços!!!

F

o que é aquele autoupdate=true??

no

<p:messages globalOnly=“true” autoUpdate=“true” />

D

nao sei…peguei um exemplo q tinha ele ai deixei ele ai…rsrsrsrsr

A

O autoupdate indica que esse componente sempre será atualizado, ou seja, sempre que houver mensagem pra ser exibida ele vai exibir, sem a necessidade de dá update nele.

L

no meu quase deu certo, pq uso o ajax=“false” e sendo assim estando todos os campos preenchidos ele naum chama o ConfirmDialog e não salva, mas se tirar o ajax=“false” ele salva estando td certo, chamando o confirmDialog mas se naum estiver td preenchido naum chama o p:growl, ou seja, o cliente naum sabe o q falta…como resolver?

Criado 8 de fevereiro de 2012
Ultima resposta 8 de fev. de 2012
Respostas 9
Participantes 4