p:启用Button后,commandButton不调用action方法

时间:2013-07-29 06:41:28

标签: jsf jsf-2 primefaces

在下面的代码中,我默认禁用命令按钮,并在输入中的任何更改后启用 按钮正常,但是,
使用客户端API方法启用按钮时,不会调用按钮的操作方法[ reconfirmAction()]

button_widget.enable()

以下是代码:

<h:form id="reConfirmForm">
    <h:outputLabel>User Name</h:outputLabel>
    <h:inputText value="#{myBean.userName}" onchange="btnWigetVar.enable()"/><br/>

    <h:outputLabel>Email</h:outputLabel>
    <h:inputText value="#{myBean.userEmail}" onchange="btnWigetVar.enable()"/><br/>

    <p:commandButton value="Re-Confirm" widgetVar="btnWigetVar" action="#{myBean.reconfirmAction}" disabled="true"/>
</h:form>

我正在使用Primeface 3.5和Mojarra 2.1.13

1 个答案:

答案 0 :(得分:3)

您需要使用JSF而不是JavaScript启用该按钮。

<p:commandButton id="testbutton" value="Re-Confirm" widgetVar="btnWigetVar" action="#{myBean.reconfirmAction}" disabled="#{!bean.enabled}"/>

豆:

private boolean enabled;

public void enableButton() {
enabled = true;
}

public boolean isEnabled() {
return enabled;
}

您可以使用Ajax监听输入字段中的更改:

 <h:inputText value="#{myBean.userEmail}">
     <p:ajax event="change" listener="#{bean.enableButton}" update="testbutton"/>
 </h:inputText>

还要确保bean至少是@ViewScoped