【发布时间】: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