Galera, preciso mostrar um popup de sucesso na minha tela ao final do cadastro e estou chamando esse popup por uma function javaScript, só que não está funcionando. nem cai na function quando a tela é carregada.
Eu estou usando JSF e Primefaces tbm.
A function está assim:
<h:head>
<h:outputScript library="js" name="sics.js"/>
<script language="JavaScript" type="text/javaScript">
function() {
if(requisicaoProcessada){
result.show();
}
}
</script>
</h:head>
Tenho esse hidden tbm:
<h:inputHidden id="requisicaoProcessada" value="#{bloqueioMassivoController.requisicaoProcessada}" />
E esse é meu popup:
[code]
<p:confirmDialog widgetVar=“result”>
<h:form id=“resultBlock”>
<!-- MSG SUCESSO -->
<p:fieldset id="informationsuccess" legend="${globalMsgs.legend_success}">
<h:panelGrid columns="1">
<h:outputLabel styleClass="textLabel" value="${blockUnblockMassMsgs.totalRegisterProcessed}: ${bloqueioMassivoController.totalRegistrosProcessados}"/>
</h:panelGrid>
<!-- BOTOES -->
<h:panelGrid columns="1" styleClass="panelButton">
<p:commandButton id="ok" value="${globalMsgs.label_btn_ok}" onclick="result.hide()" type="button" />
</h:panelGrid>
</p:fieldset><br/>
</h:form>
</p:confirmDialog> [/code]
Alguém poderia me ajudar?
Isso
<script language="JavaScript" type="text/javaScript">
function() {
if(requisicaoProcessada){
result.show();
}
}
</script>
Realmente não funciona de jeito algum.
Já isso
<script language="JavaScript" type="text/javaScript">
function nomeCorretoDaFunction() {
if(requisicaoProcessada){
result.show();
}
}
</script>
Funciona.
Não é só porque você declarou um campo com o id requisicaoProcessada que vai existir uma variável com esse nome 
Você ainda precisa declarar a função com a sintaxe correta e precisa primeiro pegar a referência do componente, para depois acessar o valor, fica algo assim:function validar(){
var component = document.getElementById('requisicaoProcessada');
if(requisicaoProcessada.value = VALOR_ESPERADO){
result.show();
}
}
E sendo JSF você precisa verificar corretamente o ID do componente, pois se ele estiver aninhado em um Naming Container, o id dele provavelmente estará composto.
Rodrigo, não funcionou ainda.
Alterei a function como vc sugeriu mas não tá caindo lá.
Meu código ficou assim:
<h:head>
<h:outputScript library="js" name="sics.js"/>
<script language="JavaScript" type="text/javaScript">
window.onload = exibirPopup;
function exibirPopup(){
alert("teste 1");
var terminouRequisicao = document.getElementById('requisicaoProcessada');
if(terminouRequisicao.value == true){
result.show();
}
}
</script>
</h:head>
Você verificou se esse realmente é o id do componente?
Você olhou o console do browser pra ver qual é o erro exatamente?
Rodrigo, eu olhei no console do browser e o erro que aparece é esse:
Uncaught ReferenceError: exibirPopup is not defined
Por que será que ele não tá reconhecendo minha function?
De onde a função é chamada?
Outra coisa, para você conseguir dar o .show(), você precisa passar o widgetVar do componente e ai sim, dar o show.
Posta o código completo, deve ficar mais fácil pra entender de onde o erro vem.
Esse caso é uma clássica situação de um sujeito que nunca mexeu com web e já quer brincar com framework java component based.
Não sabe como funciona javascript num xhtml e, provavelmente, não sabe como funciona o JSF 2.
Enfim…