当我尝试创建新用户时,以下字段(loginId是inputText)和(passwordSecret的密码)带有预加载的值。如何在加载页面时清除这些字段
<s:decorate id="loginIdField" template="/layout/edit.xhtml">
<ui:define name="label">Desired Login Name</ui:define>
<a:region>
<h:inputText id="loginId" required="true" value="#{userHome.instance.loginId}"/>
<div class="actionButtons">
<a:commandButton id="submit" value="Check Availability"
action="#{userHome.isUniqueUsername(userHome.instance.loginId)}" reRender="loginIdField"/>
</div>
</a:region>
</s:decorate>
<table style="clear:both">
<tr>
<td>
<s:decorate id="passwordField" template="/layout/edit.xhtml">
<ui:define name="label">Password</ui:define>
<h:inputSecret id="password" required="true" redisplay="true" value="#{userHome.instance.passwordHash}"/>
</s:decorate>
</td>
<td>
<s:decorate id="passwordControlField" template="/layout/edit.xhtml">
<ui:define name="label">Retype Password</ui:define>
<h:inputSecret id="passwordControl" required="true" redisplay="true">
<s:validateEquality for="password" message="The passwords don't match, please enter again"/>
</h:inputSecret>
</s:decorate>
</td>
</tr>
</table>
答案 0 :(得分:2)
这可能有两个原因:
instance
是已初始化的对象,其中包含loginId
和password
他们可以很容易地解决:
在userHome
bean初始化期间创建User
的新实例而不是加载任何内容
三个选项:
(首选)设置以下属性:<h:inputText autocomplete="off" ..
将字段的id
属性更改为与登录表单中的属性不同。例如id="registerLoginId"
。
或者您可以使用javascript -
window.onload() = function() {
document.getElementById("formId:fieldId").value = "";
}