Duvida como desabilitar campos após o clicar check box usando JSF?

Olá,

como poderia fazer no javascript para desabilitar os campos conforme
abaixo alguém poderia me ajudar …

abs



 <h:panelGrid columns="2" >

                  <h:panelGroup>
	                       <h:outputLabel value="* Verifica"/>
			               <h:selectBooleanCheckbox id="temporario"  value="#{teste.temporario}" title=""  />
                  </h:panelGroup>
                </h:panelGrid>		

<h:panelGrid width="495px" bgcolor="" columns="2" border="0">

					<h:outputText value="Codigo:" />
					<h:panelGroup>
						<h:inputText id="matriculaFunc" value="#{teste.matriculaFunc}"
							required="true" requiredMessage=" Matricula Obrigatória"
							validatorMessage=" Matricula tem que ter mais de 3 caracteres">
							<f:validateLength minimum="3" />
						</h:inputText>
						<rich:message for="matriculaFunc" />
					</h:panelGroup>
		
		
					<h:outputText value="Nome:" />
					<h:panelGroup>
						<h:inputText id="nomeFunc" value="#{teste.nomeFunc}"
							required="true" requiredMessage=" Nome Obrigatório."
							validatorMessage="Nome tem que ter mais de 3 caracteres">
							<f:validateLength minimum="3" />
						</h:inputText>
						<rich:message for="nomeFunc" />
					</h:panelGroup>
<script type="text/javascript">

function temp(obj) {	

	    if(obj.checked == true){
			// desabilita campos usuario
			document.getElementById("matriculaFunc").disabled = true;
			document.getElementById("matriculaFunc").style.background = "#CCC";
			document.getElementById("nomeFunc").disabled = true;
			document.getElementById("nomeFunc").style.background = "#CCC";
			document.getElementById("nivelFunc").disabled = true;
			document.getElementById("nivelFunc").style.background = "#CCC";
			document.getElementById("nivelFunc").disabled = true;
			document.getElementById("nivelFunc").style.background = "#CCC";

o que fiz até agora

Duvida como desbilitar um campo input usando check box JSF ???

Olá como faço

pra desabilitar usando id do campo input ???

porque está dando erro ???

se alguém puder me ajudar …

agradeceria…

abs


--erro
document.Form.temporario.checked é nulo ou não é um objeto 


function habilitar(){

	if (document.Form.temporario.checked){
		document.Form.matriculaFunc.disabled = true
	}else{
		document.Form.matriculaFunc.disabled = false
		document.Form.matriculaFunc.value = ""
	}		
}


   <h:panelGrid width="495px" bgcolor="" columns="2" border="0">

					<h:outputText value="Matricula:" />
					<h:panelGroup>
						<h:inputText id="matriculaFunc" value="#{pubUsuario.matriculaFunc}"
							required="true" requiredMessage=" Matricula Obrigatória"
							validatorMessage=" Matricula tem que ter mais de 3 caracteres">
							<f:validateLength minimum="3" />
						</h:inputText>
						<rich:message for="matriculaFunc" />
					</h:panelGroup>

Se o que está perguntado é JavaScript, tem algo errado no seu código. Veja o fonte gerado pelo JSF e verá que não se chama assim.

Geralmente o id de um componente é concatendo com o do container jsf, que geralmente é um form:

<h:form id="form">
  <h:selectBooleanCheckbox value="#{someBean.status}" id="status" />
</h:form>

dessa forma o id gerado em html pelo jsf fica: “form:status”

vc pode resolver este problema:

de duas formas:
1 - a função habilitar ficaria assim:

function habilitar(){  
  var check = document.getElementById("form:status");
  if (check.checked){  
    //escrever codigo caso marcado.
   }else{
   //  escrever codigo caso desmarcado.
  }          
}  

1 - adicionar prependId=“false” na tag h:form, isso faz com q o jsf não concatene os ids, deixando exatamente a o id q vc colocou no componente.

Mas pra resolver o esse tipo problema eu uso o pra fazer renderização e tals.
se quiser eu posto um exemplo.

Abraços.

dayvison.lemos , poderia postar como fazer em ?

<selectBooleanCheckBox value="#{someBean.booleanValue}" > <a4j:suport event="onclick" reRender="idComponente" /> </selectBooleanCheckBox> <h:inputText id="idComponente" disable="#{someBean.booleanValue}" />

vlw !
Vou testar depois posto se funfou

Blz, funfou, o problema é que o campo do CheckBox NÃO está no Banco de Dados,

tem como verificar se o CheckButton está ‘clicado’ e se positivo fazer por exemplo

&lt;h:selectBooleanCheckbox //if pra ver se está clicado -&gt; seta o valor na classe.java setIsChecked(false) ou true ??&gt;
&lt;a4j:support event="onclick" reRender="hrWeekInitHrS1" /&gt;
&lt;/h:selectBooleanCheckbox&gt;

estou tentando assim:

&lt;h:selectBooleanCheckbox 
onclick="if (#{placeMBean.place.chkWeek==true}) #{placeMBean.place.setChkWeek(false)};"&gt;	
&lt;a4j:support event="onclick" reRender="hrWeekInitHrS1" /&gt;
&lt;/h:selectBooleanCheckbox&gt;

mas não está funcionando

Não entendi o lance do check não estã no banco.
place é um POJO, e chkWeek é um campo no BD do tipo booleano.
certo??
o chkWeek no POJO place é do tipo Boolean ou boolean(primitivo)??
se caso for Boolean(Classe) ele deve ta vindo do banco nulo, sugiro colocar NOT NULL no BD e mudar no POJO para boolean(primitivo).
com isso acho q funciona. sem precisar do onClick no selectBooleanCheckBox.

Aí é que está, o chkWeek não está no Banco !
Acho que o certo seria estar no banco, não é ? Senão não tem como fazer ?