HTML表单后缺少尾随元素?

时间:2011-01-05 15:07:49

标签: html

我真的希望这不是一个愚蠢的问题,但这个HTML似乎太简单而不能失败。它仍然失败了。

我有一个以表单开头的页面,在表单之后,我还有一些元素。这些元素永远不会显示!这是代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>CGI Test</title>
</head>
<body>
    <form enctype="multipart/form-data" method="post" action="/cgi-bin/upload.cgi" target="upload_target">
        <input type="hidden" name="cmd" value="uploadBackgroundFile" />
     <p>File Upload:
     <input type="file" name="file" value="" /> (Select A Local File)</p>
     <p><input type="submit" name="cgitest" value="Submit Request" /></p>
        <iframe id="upload_target" name="upload_target" src=""
            style="visibility: hidden; width: 500px; height: 300px; border: 2px solid black;" />
    </form>
    <p />
    <hr />
    <h1>List of uploaded files:</h1>
    <ul id="listBackgroundFiles">
        <li>(Nothing loaded yet)</li>
    </ul>
</body>
</html>

此外,如果我调用“document.getElementById('listBackgroundFiles')”,它将返回null。表单之后的元素不仅没有显示,它们似乎根本不存在!

这似乎不是浏览器问题...我在Internet Explorer 7.0.6002.18005,Firefox 3.6.12,Chrome 5.0.375.99,Opera 10.60.3445和Safari 5.0.2(7533.18)中遇到同样的问题.5),所有在Windows Vista下运行(遗憾)。我通过W3C和WDG验证器运行页面,这些没有显示任何问题。最后,如果我将这些元素移到表单上方,它们就会很好地显示出来。将元素放在表单后面似乎是一个问题。

再次,如果这是一个愚蠢的问题我会道歉,但我对这种简单的事情如此失败感到困惑。

3 个答案:

答案 0 :(得分:2)

更改

<iframe id="upload_target" name="upload_target" src=""
            style="visibility: hidden; width: 500px; height: 300px; border: 2px solid black;" />

<iframe id="upload_target" name="upload_target" src=""
            style="visibility: hidden; width: 500px; height: 300px; border: 2px solid black;" ></iframe>

据我所知,<iframes><scripts>应始终通过编写另一个结束标记而不是单个标记来关闭。

点击此链接查看HTML标记列表,只有在此列表中自行关闭的标记才可以并且应该自行关闭:List of HTML Tags

虽然根据我的经验,脚本和iframe标签是最危险的标签。

答案 1 :(得分:1)

iframe不是自动关闭的。试试这样,它会起作用。

<iframe id="upload_target" name="upload_target" src=""
            style="visibility: hidden; width: 500px; height: 300px; border: 2px solid black;"></iframe>

答案 2 :(得分:0)

即使您的代码有效,自动关闭iframe也是问题所在。将<iframe />更改为<iframe> </iframe>。就像脚本标记其中的一个“事物”......