0

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

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

4

1 回答 1

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

于 2013-07-29T07:28:13.523 回答