【问题标题】:disable button programmatically primefaces以编程方式禁用按钮
【发布时间】:2017-11-06 16:09:59
【问题描述】:

如果数据库中存在用户名,我想禁用注册表单的提交按钮我尝试了多种解决方案,但没有一个有效

我的 xhtml

<h:outputLabel for="#{userBean.username}" value="UserName" />
<p:inputText styleClass="input" id="username" value="#{userBean.username}" label="UserName " required="true"
    requiredMessage="Username is required"
    validatorMessage="UserName should be of maximum length 20 chars">
    <f:validateLength maximum="20"></f:validateLength>
    <p:ajax  event="keyup" listener="#{userBean.searchByUsername()}" update="usernamegrowl,signupButton" /> 
                </p:inputText>
<p:message  id="usernamemessage" for="username"></p:message>
<p:commandButton id="signupButton" value="SignUp"  action="#{userBean.persistUser()}"
                ajax="false" disabled="#{userBean.message}"></p:commandButton>

我的方法 searchByUsername

public void searchByUsername() {
    User user = userService.findUserByUserName(getUsername());
    if (user != null) {
        FacesContext.getCurrentInstance().addMessage("usernamegrowl",
                new FacesMessage(FacesMessage.SEVERITY_ERROR, "username is alredy used", ""));
        RequestContext.getCurrentInstance().execute("document.getElementById('signupform:signupButton').setAttribute('disabled', 'true');");

        setMessage(false);
    }
    else
        setMessage(true);
    RequestContext.getCurrentInstance().execute("document.getElementById('signupform:signupButton').setAttribute('disabled', 'false');");

}

【问题讨论】:

    标签: javascript jsf primefaces


    【解决方案1】:

    update 以空格分隔。

    有关处理/更新和执行/渲染的详细信息,请阅读answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      相关资源
      最近更新 更多