5

有什么方法可以将任意元素的 css 类绑定到模型绑定状态?

<form:form method="post" commandName="authForm" action="authenticate">
  <div id="login-error" class="control-group">
    <label>Login</label>
    <form:input path="name" />
    <span class="help-inline"><form:errors path="name" /></span>
  </div>

  <div class="control-group">
    <label>Password</label>
    <form:input path="password" />
    <span class="help-inline"><form:errors path="password" /></span>
  </div>

  <input type="submit" />
</form:form>

在这段代码中,我需要在没有错误和有错误时管理login-error's 类(对于 second 的想法相同)。control-groupcontrol-group errorcontrol-group

这里的常见解决方案是什么?

更新

这是没有绑定错误时我需要的:

<div class="control-group"> <!-- !!!!!!!!!!!! -->
  <label>Login</label>
  <form:input path="name" />
  <span class="help-inline"><form:errors path="name" /></span>
</div>

这是出现绑定错误时我需要的:

<div class="control-group error"> <!-- !!!!!!!!!!!! -->
  <label>Login</label>
  <form:input path="name" />
  <span class="help-inline"><form:errors path="name" /></span>
</div>

寻找解决方案。

4

3 回答 3

8

这是可行的解决方案,但我不确定它是否真的是个好主意:

<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%>
...
<form:form method="post" commandName="authForm" action="authenticate">
  <spring:bind path="name">
    <div class="control-group <%= status.isError() ? "error" : "" %>"
      <label>Login</label>
      <form:input path="name" />
      <form:errors path="name" cssClass="help-inline" />
    </div>    
  </spring:bind>
  ...
</form:form>
于 2012-05-14T06:40:30.590 回答
2

我有同样的问题,我使用 jQuery 解决了它。

<div class="control-group">
    <form:label path="groupCode" cssClass="control-label"><spring:message code="lookUp.groupCode"/></form:label>
    <div class="controls">
        <form:input path="groupCode"/>
        <form:errors path="groupCode">
            <form:errors path="groupCode" cssClass="help-inline"/>
            <script type="text/javascript">
                $("#groupCode").parent().parent().addClass("error");
            </script>
        </form:errors>
    </div>
</div>
于 2012-08-06T09:39:25.233 回答
0

我无法在这里找到合适的(通用)解决方案。但是您可以使用 JavaScript 并尝试查找在视图中是否存在 id 为“name”的跨度,并且基于此条件,您可以实现您想要的。

因为当没有指定的绑定错误时它不会生成相同的跨度标签。如果“名称”有错误,那么它将生成带有其 id 的相应 span 标签。

希望这对您有所帮助。干杯。

于 2012-05-14T06:41:52.307 回答