Как очистить поля пароля / логина при загрузке - PullRequest
1 голос
/ 17 февраля 2010

Когда я пытаюсь создать нового пользователя, следующие поля (loginId, который является inputText) и (пароль, который является inputSecret) приходят с предварительно загруженными значениями. Как очистить эти поля при загрузке страницы

<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 Ответ

2 голосов
/ 17 февраля 2010

Это может иметь две причины:

  1. ваш instance - это уже инициализированный объект с установленными loginId и password
  2. Ваш браузер распознает поля входа и автоматически заполняет запомненные значения

Их можно решить довольно легко:

  1. во время инициализации компонента userHome создайте новый экземпляр User вместо загрузки чего-либо

  2. Три варианта:

    • (предпочтительно) установить следующий атрибут: <h:inputText autocomplete="off" ..

    • изменить атрибут id полей, чтобы он отличался от атрибутов в форме входа. например id="registerLoginId".

    • в качестве альтернативы вы можете использовать javascript -

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