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