thead元素中的form与source和DOM不同

时间:2013-09-25 16:25:33

标签: forms jsp dom spring-mvc

我有一个spring-mvc jsp表,在thead中有一些输入元素可以进行一些过滤。 thead确实有一个表格作为孩子的第一元素。

<table>
  <thead>
    <form:form action="." modelAttribute="accountWrapper.theAccount">
      <tr><td class="columhead" id="firstname"><div class="disp">first name</div>
            <div class="filter"><form:input path="firstName"/></div></td>
          <td class="columnhead" id="lastname"><div class="disp">last name</div>
            <div class="filter"><form:input path="lastName"/></div></td>
          <td>email</td></tr>
    </form:form>
  </thead>
  <tbody>

检查来源时,我看到:

<thead>
  <form id="accountWrapper.theAccount" action="." method="post">
     <tr><td class="columhead" id="firstname"><div class="disp">first name</div>
           <div class="filter"><input id="theAccount.firstName" name="theAccount.firstName" type="text" value="search"/></div></td>
         <td class="columnhead" id="lastname"><div class="disp">last name</div>
       <div class="filter"><input id="theAccount.lastName" name="theAccount.lastName" type="text" value="search"/></div></td>
         <td>email</td></tr>
  </form>
</thead>
<tbody>

正如我所期待的那样。

但是当我检查javascript DOM时,表单元素是直接在&lt; thead&gt;下的空元素,&lt; input&gt;元素在表单之外。表单提交出错了。

<thead>
  <form id="accountWrapper.theAccount" action="." method="post"></form>
     <tr><td class="columhead" id="firstname"><div class="disp">first name</div>
           <div class="filter"><input id="theAccount.firstName" name="theAccount.firstName" type="text" value="search"/></div></td>
         <td class="columnhead" id="lastname"><div class="disp">last name</div>
       <div class="filter"><input id="theAccount.lastName" name="theAccount.lastName" type="text" value="search"/></div></td>
         <td>email</td></tr>
</thead>
<tbody>

1 个答案:

答案 0 :(得分:0)

<form>元素中不能包含<thead>元素。此规则适用于除<table><th>之外的所有<td>子元素。无论出于何种原因,Spring序列化都会在<form>立即关闭的情况下呈现HTML。

<form>包裹整张桌子。