如何解决以下 HTML 错误?

问题描述 投票:0回答:4

我的 django 模板文件中有以下几行:-cart.html:-

<td class="right">
    <form method="post" action="." class="cart">
        <label for="quantity">Quantity:</label>
        <input type="text" name="quantity" value="{{ item.quantity }}" id="quantity" size="2" class="quantity" maxlength="5" />
        <input type="hidden" name="item_id" value="{{ item.id }}" />
</td>
<td>
    <input type="submit" name="submit" value="Update" />
    </form>
</td>

在 td 的第一个结束标记处,即第一个

</td>
,我收到以下错误: 元素表单未关闭。请帮我纠正这个错误。

html django-templates
4个回答
2
投票

HTML 标签必须以直接分层方式构建。关闭在先前关闭的元素内打开的标签是不正确的,并且通常会产生错误和问题。

将表单包含在表数据中,如下所示:

<td class="right">
    <form method="post" action="." class="cart">
        <label for="quantity">Quantity:</label>
        <input type="text" name="quantity" value="{{ item.quantity }}" id="quantity" size="2" class="quantity" maxlength="5" />
        <input type="hidden" name="item_id" value="{{ item.id }}" />
        <input type="submit" name="submit" value="Update" />
    </form>
</td>

或者将整个表格或表格元素包含在表单内,如下所示:

<form method="post" action="." class="cart">
    <td class="right">
        <label for="quantity">Quantity:</label>
        <input type="text" name="quantity" value="{{ item.quantity }}" id="quantity" size="2" class="quantity" maxlength="5" />
        <input type="hidden" name="item_id" value="{{ item.id }}" />
    </td>
    <td>
        <input type="submit" name="submit" value="Update" />
    </td>
</form>    

我认为后一种解决方案就是您正在寻找的解决方案。


1
投票

好吧,尝试按 Tab 键选择第一行,使其与其结束标记对齐。

然后我会稍微修改代码并进行尝试。这是一篇值得一看的好文章:http://help.simplytestable.com/errors/html-validation/end-tag-for-element-x-which-is-not-open/end-tag-for-element -未打开的表单/


1
投票

如果您尝试将表单放在多个

td
上,则使用当前的方法会很困难。

不幸的是,您不能将表单放在表格行中,并且当前的 HTML 无效,因为

td
元素在
form
元素之前关闭。

您需要:

  1. 以表格形式呈现整个表格
  2. 将整个表格放在表格单元格中。
  3. 使用html5表单属性

参见表格内的表格


0
投票

很简单,您只需将第一个

</form>
内的
<td>
标签移动到
</td>
之前。

© www.soinside.com 2019 - 2024. All rights reserved.