[JS] - getElementById('habilitaCampo').checked=false;

7 respostas
getAdicted

Bom dia pessoal!

Por gentileza, eu estou querendo selecionar um Responsavel e caso não seja pai e mae, eu habilito o campo ‘outro’. Eu estou tentando desflegar o radio quando o usuário clicar em pai ou mae, mas não estou conseguindo, jah tentei tudo, menos a coisa certa, rs

<h:selectOneRadio id="tipoResponsavel" value="#{responsavelBean.responsavel.tipoResponsavel}" onchange="document.getElementById('tipoResp').disabled=true;document.getElementById('habilitaCampo').checked=false;"> <f:selectItem itemValue="#{responsavelBean.maeItem}" itemLabel="#{msgs.mae}" /> <f:selectItem itemValue="#{responsavelBean.paiItem}" itemLabel="#{msgs.pai}" /> </h:selectOneRadio>

<h:selectOneRadio id="habilitaCampo"
							onchange="document.getElementById('tipoResp').disabled=false">
							<f:selectItem />
						</h:selectOneRadio>
<p:inputText id="tipoResp"
							value="#{responsavelBean.responsavel.tipoResponsavel}" />

Valeu!!!

[]'s

7 Respostas

Guilherme_Gomes

Qual o erro? O que acontece?

Percebi que está usando JSF, dá uma olhada se os IDs dos elementos no HTML não estão com o prefixo <id_form>:.

getAdicted

Guilherme Gomes:
Qual o erro? O que acontece?

Percebi que está usando JSF, dá uma olhada se os IDs dos elementos no HTML não estão com o prefixo <id_form>:.

Oi Guilherme,

Se eu entendi a sua primeira pergunta, o IDs dos forms estão com prependId=false. Sobre o erro, eu coloquei em um alert e ele imprime undefined, quando eu modifico o checked pelo value:

Porém, se eu modifico, coloco um ID de um inputText no getElementById, funciona, não esta funcionando para o ID do h:selectOneRadio, que esta dessa forma:

<h:selectOneRadio id="habilitaCampo" onchange="document.getElementById('tipoResp').disabled=false"> <f:selectItem /> </h:selectOneRadio>

Eu jah tentei colocar um id para o <f:selectItem />, testei de varias formas e nada.

Obrigado por me ajudar!

[]'s

getAdicted

Cliquei sem querer.

A

Opa, boa tarde.

Talvez ajude, tenta assim: (se tiver usando richfaces)

<h:selectOneRadio id="habilitaCampo"  onchange="#{rich:element('tipoResp')}.disable=false;">  
            <f:selectItem />  
 </h:selectOneRadio>

[]'s

getAdicted

alex.brito:
Opa, boa tarde.

Talvez ajude, tenta assim:

<h:selectOneRadio id="habilitaCampo"  onchange="#{rich:element('tipoResp')}.disable=false;">  
            <f:selectItem />  
 </h:selectOneRadio>

[]'s


Opa, boa tarde alex.brito!

Eu tomei um Function ‘rich:element’ not found. Eu estou utilizando JSF+Primefaces, estou tentando fazer com javascript para não ter que importar mais nada no projeto, eu achei que desse jeito ficaria mais elegante (da maneira que eu pensei), mas acho que vou tentar outros meios.

Valeu, velhão!

[]'s

A

Putz, malz ai … não perguntei se usava rich ou prime …

Enfim, não conheço nenhum comando equivalente para o prime. Mas uma alternativa, seria você tentar usar JQuery, mas não dependeno do ID, utilizando classes CSS

algo parecido com isso:

$(.classeCSS).disable=false;

e no <h:selectOneRadio> você define essa classe

<h:selectOneRadio styleClass="classeCSS" ... />

fica a sugestão.

[]'s

getAdicted

alex.brito:
Putz, malz ai … não perguntei se usava rich ou prime …

Enfim, não conheço nenhum comando equivalente para o prime. Mas uma alternativa, seria você tentar usar JQuery, mas não dependeno do ID, utilizando classes CSS

algo parecido com isso:

$(.classeCSS).disable=false;

e no <h:selectOneRadio> você define essa classe

<h:selectOneRadio styleClass="classeCSS" ... />

fica a sugestão.

[]'s

Então velhinho,

Eu estou tentando desflegar um Radio e consegui desflegar um checkbox, rs

Isso funciona:

<h:selectOneRadio id="tipoResponsavel" value="#{responsavelBean.responsavel.tipoResponsavel}" onchange="alert(document.getElementById('tipoResp').disabled=true);alert(document.getElementById('habilitaCampo').checked=false );"> <f:selectItem itemValue="#{responsavelBean.maeItem}" itemLabel="#{msgs.mae}" /> <f:selectItem itemValue="#{responsavelBean.paiItem}" itemLabel="#{msgs.pai}" /> </h:selectOneRadio>

<h:selectBooleanCheckbox id="habilitaCampo" onchange="document.getElementById('tipoResp').disabled=false"> <f:selectItem itemLabel="#{msgs.outro}" /> </h:selectBooleanCheckbox>
Isso não funciona:

<h:selectOneRadio id="tipoResponsavel" value="#{responsavelBean.responsavel.tipoResponsavel}" onchange="alert(document.getElementById('tipoResp').disabled=true);alert(document.getElementById('habilitaCampo').checked=false );"> <f:selectItem itemValue="#{responsavelBean.maeItem}" itemLabel="#{msgs.mae}" /> <f:selectItem itemValue="#{responsavelBean.paiItem}" itemLabel="#{msgs.pai}" /> </h:selectOneRadio>

<h:selectOneRadio id="habilitaCampo" onchange="document.getElementById('tipoResp').disabled=false"> <f:selectItem itemLabel="#{msgs.outro}" /> </h:selectOneRadio>

Aparentemente, o checked=false funciona com </h:selectBooleanCheckbox> e não com </h:selectOneRadio>, ficou uma solução meio quadrada :smiley: hehe

[]'s

Criado 9 de novembro de 2011
Ultima resposta 10 de nov. de 2011
Respostas 7
Participantes 3