JSF 2.0 + prime faces
entao pessoal vou ter um termo para usuario, e nesse caso gostaria de ter um check
Li e aceitos os termos |_| Botao(Disable=true)
ai qdo clicar em no check, o botao fica habilitado(Disable=false).
JSF 2.0 + prime faces
entao pessoal vou ter um termo para usuario, e nesse caso gostaria de ter um check
Li e aceitos os termos |_| Botao(Disable=true)
ai qdo clicar em no check, o botao fica habilitado(Disable=false).
Javascript.
cara tentei assim e nao foi, da uma ajuda ai
<p:selectBooleanCheckbox id="termo" required="true" onchange="HabiBotao()"/>
<p:commandButton id="botao" styleClass="botaoEsquerda" type="submit" value="Prosseguir"
actionListener="#{UserBean.mudarPaginaMenu}" disabled="true"/>
<p:commandButton styleClass="botaoDireita" value="Voltar" type="submit"
actionListener="#{UserBean.mudarPaginaPrescricaoMedica()}"/>
<f:verbatim>
<script type="text/javascript">
function HabiBotao(){
if(document.getElementById('termo').checked == true){
document.getElementById('botao').disabled = "false"
}
if(document.getElementById('termo').checked == false){
document.getElementById('botao').disabled = "true"
}
}
</script>
</f:verbatim>
Se é jsf, o id do elemento é composto por idDoForm:idDoElemento.
Isso
if(document.getElementById('termo').checked == true){
Não vai funcionar, pois, está pegando apenas o id do elemento.
isso e jsf, msm colocando idform:idElemento, nao funciona!! :S
Posta a xhtml inteira
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Termo Responsabilidade</title>
<link rel="stylesheet" type="text/css" href="css/padrao.css"/>
<link rel="stylesheet" type="text/css" href="css/04_TermodeResponsabilidade.css"/>
</h:head>
<h:body>
<div class="header">
</div>
<h:form id="form1">
<p:panelGrid columns="1" styleClass="painelPrincipal ui-panelgrid td" >
<p:panel style="background-color: #FFF5EE;" >
<h1> <p align="center"> Termo de Responsabilidade </p></h1>
<br/>
<p> Teste de conteúdo.</p>
<br/> <br/>
<p> Está ciente?!</p>
</p:panel>
<p:panel style="border-color: white">
<h:outputText value="Li e Aceito o Termos de Responsabilidade: "
style="font-style: italic"/>
<p:selectBooleanCheckbox id="termo" required="true" onchange="HabiBotao()"/>
<p:commandButton id="botao" styleClass="botaoEsquerda" type="submit" value="Prosseguir"
actionListener="#{UserBean.mudarPaginaMenu}" disabled="true"/>
<p:commandButton styleClass="botaoDireita" value="Voltar" type="submit"
actionListener="#{UserBean.mudarPaginaPrescricaoMedica()}"/>
<f:verbatim>
<script type="text/javascript">
function HabiBotao(){
if(document.getElementById('termo').checked == true){
document.getElementById('botao').disabled = "false"
}
if(document.getElementById('termo').checked == false){
document.getElementById('botao').disabled = "true"
}
}
</script>
</f:verbatim>
</p:panel>
</p:panelGrid>
</h:form>
</h:body>
</html>
Cade o value do selectBooleanCheckbox para ele mapear isso com uma propriedade do managedBean ?
Veja com o firebug ou similar se o id do checkbox foi setado e se o seu javascript é chamado.
Se sim veja o valor de document.getElementById(‘botao’)
Pode-se também fazer uma chamada ajax, que ao mudar o check você iria mudar um atributo, o qual daria o disabled no botão ou não.
[quote=lele_vader]Cade o value do selectBooleanCheckbox para ele mapear isso com uma propriedade do managedBean ?
Veja com o firebug ou similar se o id do checkbox foi setado e se o seu javascript é chamado.
Se sim veja o valor de document.getElementById(‘botao’)[/quote]
Isso é desnecessário. A propriedade value não interfere em nada no que ele quer fazer.
O problema está no fato de colocar o script abaixo dos elementos e não no head do html, quando ele clica no checkbox, nenhum evento é disparado, pois o script não é conhecido por todos.
Eu sei que não tem nada a ver isso.
Só questionei por conta de o valor que ele colocar não vai voltar para o server e lá tem um required = true.
Aí vai um exemplo simples.
vlw cara funcionou, mais so um detalhe, ele funciona no firefox, no ie nao funciona… sabe pq??
Não tenho a mínima idéia.
Tente debugar (se usa IE >= 8, com a página aberta pressione a tecla F12 e você terá algo parecido com o firebug).