如何在加载时清除密码/登录ID字段

时间:2010-02-17 04:42:44

标签: jsf user-interface seam richfaces

当我尝试创建新用户时,以下字段(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>

1 个答案:

答案 0 :(得分:2)

这可能有两个原因:

  1. 您的instance是已初始化的对象,其中包含loginIdpassword
  2. 您的浏览器会识别登录字段并自动填写记住的值
  3. 他们可以很容易地解决:

    1. userHome bean初始化期间创建User的新实例而不是加载任何内容

    2. 三个选项:

      • (首选)设置以下属性:<h:inputText autocomplete="off" ..

      • 将字段的id属性更改为与登录表单中的属性不同。例如id="registerLoginId"

      • 或者您可以使用javascript -

        window.onload() = function() {
             document.getElementById("formId:fieldId").value = "";
         }