在 table header 中放置表单时表单位置无效

Invalid form location when placing form in table header

我正在(成功地)使用 HTML table 的 header 作为表格。此表单用于过滤下面的 table 行并且效果很好。这是一个例子:

<table class="tableMedium">
    <tr>
        <form name="fiterRoles" action="<c:url value="/roles/filteredList" />" method="POST">
            <th>Name<br/>
                <input type="text" id="nameFilter" name="nameFilter" value="${nameFilter}" placeholder="Search" onchange="this.form.submit()" style="width: 100%;"/>
            </th>
            <th>Description<br/>
                <input type="text" name="descriptionFilter" value="${descriptionFilter}" placeholder="Search" onchange="this.form.submit()" style="width: 100%;"/>
            </th>
            <th width="${hasEditRights eq true ? '22%' : '6%'}">Controls<br/>
                <a class="buttonLink" href="<c:url value='/roles/list' />" title="Reset Filters">
                    <img src="${cp}/resources/images/resetFilters.png" height="20" width="20"/>
                </a>
                <c:choose>
                    <c:when test="${hasEditRights eq true}">
                        <a class="buttonLink" href="<c:url value='/roles/newRole' />" title="Add Role">
                            <img src="${cp}/resources/images/addIcon.png" height="20" width="20"/>
                        </a>
                    </c:when>
                </c:choose>
            </th>
        </form>
    </tr>
</table>

唯一的问题是 Eclipse 一直告诉我这是一个无效的表单位置。该页面运行良好,但似乎 HTML5 不允许这样做。我在 copy-pasted 示例中注意到 table 没有 <thead> 标签,但其他使用 header-form 相同样式的人有它,Eclipse 仍然不满意。我曾尝试将 <form> 标签移到所述 <thead> 标签之外,但没有成功。

除了在 Eclipse 中禁用警告之外,我可以做些什么来使这段代码生效?

将整个 table 放在表单标签内。投诉是表单标签出现在 table 呈现元素的中间,虽然它 可能 正确输出,但从技术上讲,该位置是错误的。

A​​ table 可以在表单元素内:

<form>
  <table>
    <tr><td></td></tr>
    <!-- other table related elements -->
  </table>
</form>

...或者表格可以在 table 单元格内:

<table>
  <tr>
    <td>
      <form>
        <!-- form content -->
      </form>
    </td>
  </tr>
  <!-- other table related elements -->
</table>

不过请记住,如前所述,最好避免使用 table 作为 "layout aids"。