Boa tarde pessoal, gostaria de saber como posso alterar o atributo de uma tag do primefaces via javascript, para ser mais preciso quero alterar o atributo “disabled” do componente <p:commandButton> usando alguma função javascript.
Bom dia/tarde/noite!
Você deixou meio vago a pergunta. Voce quer ativar/desativar um disabled quando ? Quando o usuario clicar em algo ? Quando o usuario digitar algo ? Eu recomendo voce usar condição no próprio disabled do botão, e para fazer o update, usar um remoteCommand (que gera um java script “nativo” do primefaces).
Por exemplo:
<p:remoteCommand name="jsrc" update="idBtn" actionListener="#{seuBean.inverteCondicao}" />
<p:inputText value="#{seuBean.atributo}" onkeypress="jsrc()"/>
<p:commandButton value="Aperte o botão" disabled="#{seuBean.condicaoBooleana}" id="idBtn"/>
E no bean
private boolean condicaoBooleana = false;
public boolean getCondicaoBooleana()
{
return this.condicaoBooleana;
}
public void setCondicaoBooleana(boolean condicaoBooleana)
{
this.condicaoBooleana = condicaoBooleana;
}
public void inverteCondicao()
{
if(this.condicaoBooleana) // Por ser atributo boolean, eu posso checar s é true apenas usando "if(atributo)"
{
// Se for true, vira false
this.condicaoBooleana = false;
} else
{
// Se for false, vira true
this.condicaoBooleana = true;
}
}
Bom dia nobre colega, na verdade quero habilitar e desabilitar os botões quando o usuário selecionar uma linha do datatable, na verdade meio que consegui, fiz assim:
<p:ajax event="rowSelect" listener="#{gerenciamentoFabMB.onRowSelect}"
update=":formFabricantes:btnEditar" oncomplete="javascript:habilitaBotoes()"/>
<f:facet name="header">
[code]
function habilitaBotoes() {
document.getElementById(“formFabricantes:btnEditar”).disabled = false;
document.getElementById(“formFabricantes:btnExcluir”).disabled = false;
document.getElementById(“formFabricantes:btnVisualizar”).disabled = false;
}
</script>[/code]
Esta habilitando os botões quando clico em alguma linha, porem o botão não esta recebendo o foco novamente pois quando inicio a tela passo o desabled de alguns botões como true, dai quando clico na linha quero que ele receba o foco e fique false, estou mandando atualizar os botões porem não esta funcionando.