我有一个春天的应用程序,我验证定制春天验证器类的所有验证。如何设置焦点元素弹簧基础的应用
我的形式有近15 fields.If没有在最后一栏的错误,如何将焦点设置到该元素。
春天在什么标签支持。任何技术想法?目前,我在字段本身附近显示我的错误消息。
我有一个春天的应用程序,我验证定制春天验证器类的所有验证。如何设置焦点元素弹簧基础的应用
我的形式有近15 fields.If没有在最后一栏的错误,如何将焦点设置到该元素。
春天在什么标签支持。任何技术想法?目前,我在字段本身附近显示我的错误消息。
它可以使用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
标签露出。您可以将autofocus设置为所有有错误的字段,但浏览器只会自动对焦(并滚动)到第一个。
<spring:bind path="someFieldName">
<input type="text" name="someFieldName" value="${status.value}" ${status.error?'autofocus="autofocus"':''} />
</spring:bind>
这里不能使用spring的<form:input />
,因为它不适用于条件属性。
我用这个:
<spring:bind path="*">
<c:if test="${status.error}">
<script type="text/javascript">
window.onload = function(){
document.getElementById('${status.errors.fieldErrors[0].field}').focus();
};
</script>
</c:if>
</spring:bind>
如果有错误,将找到的第一个fieldError和其ID,并设置焦点元素上
忘了说,美女是你不需要把这个代码放在每个输入的旁边。一时间为每一个JSP足够