【问题标题】:Why the position of input within form have changed in browser?为什么表单中输入的位置在浏览器中发生了变化?
【发布时间】:2012-12-16 14:01:54
【问题描述】:

在模板文件中,我是这样写的

        % for name,sequence in NAME_SEQUENCE:

        <form id="ucsc_profile_form${sequence_counter}"
              action="${request.route_path('CF_profile_UCSC_adapter')}"
              method="GET" target="_blank">
            <input type="hidden" value="${species_short}" name="species">
            <input type="hidden" value="${chrom}" name="chrom">
            <input type="hidden" value="${start}" name="start">
        </form>
       ....

     % endfor

但是当我使用firebugs 来检查 html 代码时,它们是这样呈现的:

        <form id="ucsc_profile_form1"  action="${request.route_path('CF_profile_UCSC_adapter')}" method="GET" target="_blank">
        </form>
        <input type="hidden" value="${species_short}" name="species">
        <input type="hidden" value="${chrom}" name="chrom">
        <input type="hidden" value="${start}" name="start">

奇怪的是&lt;input&gt;元素变成了&lt;form&gt;..

可以查看原页面here,虽然DOM结构看起来不对,但是表单的元素还是可以提交的..

有人对此有想法吗?

【问题讨论】:

  • 您的&lt;input&gt; 标签永远不会关闭。这有什么不同吗?
  • @BuhakeSindi 我不这么认为。因为 W3Cshool 中的示例也没有关闭.. w3schools.com/tags/tag_input.asp
  • 奇怪,你确定你的网络服务器没有提供旧版本的模板吗?

标签: html templates dom browser web


【解决方案1】:

通过W3C Markup Validator 运行链接。我看到 674 个 HTML 错误。

这些类型的问题通常源于 Firebug 被 HTML 中其他地方的错误弄糊涂了。

在您的情况下,您将 &lt;form&gt; 元素作为 &lt;table&gt; 的子元素,将 &lt;input&gt; 元素作为 &lt;tbody&gt; 的直接子元素。

修复上述错误应该可以让 Firebug 运行良好。

【讨论】:

  • 感谢您的建议。我在描述部分添加了完整链接。
  • 现在好像可以了。结果是我把&lt;form&gt;元素放到&lt;tbody&gt;里面,这是不允许的。我将其移至&lt;td&gt; 以解决问题。
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多