2017-06-05 52 views
-2

我想,如果用戶名在數據庫中,我試圖多種解決方案來禁用我的註冊表單的提交按鈕,但沒有一個工作禁用按鈕編程primefaces

我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');"); 

} 

回答

0

update是空格分隔的。

有關處理/更新和執行/渲染的詳細信息,請閱讀此answer