0

カスタムSpring Validatorクラスですべての検証を検証するSpringアプリケーションがあります。

私のフォームには 15 近くのフィールドがあります。最後のフィールドにエラーがある場合、その要素にフォーカスを設定する方法を教えてください。

スプリングタグはそれをサポートしていますか? 技術的なアイデアはありますか? 現在、フィールド自体の近くにエラー メッセージを表示しています。

4

3 に答える 3

2

spring:bindタグを使用して、フィールドまたはモデルオブジェクト全体にエラーがあるかどうか、および処理(送信)後のオブジェクトの全体的なステータスを判別できます。

<spring:bind path="user.username">
    <input id="inputId" type="text" name="${status.expression}" value="${status.value}"/>
    <c:if test="${status.error}">
        <c:forEach items="${status.errorMessages}" var"error">
            <span class="field-error">${error}</span>
        </c:forEach>
        <script type="text/javascript">
            document.getElementById('inputId').focus();
        </script>
    </c:if>
</spring:bind>

ノート:

  • status変数はspring:bindタグによって公開されます。
  • 特定のフィールドに検証エラーがある場合、javascript部分は要素にフォーカスします。
于 2012-02-28T18:27:49.840 に答える
1

エラーのあるすべてのフィールドにオートフォーカスを設定できますが、ブラウザは最初のフィールドにのみオートフォーカス (およびスクロール) します。

<spring:bind path="someFieldName">
  <input type="text" name="someFieldName" value="${status.value}" ${status.error?'autofocus="autofocus"':''} />
</spring:bind>

<form:input />条件付き属性では機能しないため、ここではスプリングを使用できません。

于 2015-02-18T02:17:40.670 に答える