Html <;选择>;不允许在<;表格>;标签?

Html <;选择>;不允许在<;表格>;标签?,html,forms,validation,drop-down-menu,xhtml-1.0-strict,Html,Forms,Validation,Drop Down Menu,Xhtml 1.0 Strict,我正在清理一个网站的代码。我正在做的一件事是通过W3C标记验证服务运行每个页面的代码: 对于我目前正在处理的页面,验证器给了我很多错误。我已经修复了几乎所有的错误,但有一个错误我无法解决: 第92行第108列:文档类型不允许在此元素“选择”;缺少“p”、“h1”、“h2”、“h3”、“h4”、“h5”、“h6”、“div”、“pre”、“address”、“fieldset”、“ins”、“del”开始标记之一 给出此错误的代码部分在这里(第92行是以select size=“1”开头的代码,第

我正在清理一个网站的代码。我正在做的一件事是通过W3C标记验证服务运行每个页面的代码:

对于我目前正在处理的页面,验证器给了我很多错误。我已经修复了几乎所有的错误,但有一个错误我无法解决:
第92行第108列:文档类型不允许在此元素“选择”;缺少“p”、“h1”、“h2”、“h3”、“h4”、“h5”、“h6”、“div”、“pre”、“address”、“fieldset”、“ins”、“del”开始标记之一

给出此错误的代码部分在这里(第92行是以
select size=“1”
开头的代码,第108列出现在
Pageselector
后面的fullstop之前):


转到第页。。。
第1页:导言
第2页:基本优化
第3页:故障排除提示
第4页:修补程序和;Mods
第5页:在游戏设置中
第6页:游戏设置中(第2部分)
第7页:游戏设置中(第3部分)
第8页:高级调整
第9页:高级调整(第2部分)
第10页:整洁的东西&;海螺。
所讨论的代码是一个下拉列表,用于选择要查看的系列中的哪个网页。选择选项后,浏览器将打开所选页面。我不明白问题是什么,因为根据w3schools,允许
select
元素位于
表单
元素中:


如果您需要查看页面上的所有代码或需要其他任何内容,您可以这样说,我将编辑此问题。我使用的DocType是
XHTML 1.0 Strict
。上面的代码做了它应该做的事情。我只是想清理和重构它。

我很确定问题不在表单上。我认为你不能突然说
Pageselector.FC
;无法正确选择html元素。尝试改用
。或者更好的是,将整个过程移动到JS函数

<select size="1" name="FC" onchange="location.href = this.options[selectedIndex].value">


指的是
是select元素的一部分的元素。

我很确定问题不在于表单。我认为你不能突然说
Pageselector.FC
;无法正确选择html元素。尝试改用
。或者更好的是,将整个过程移动到JS函数

<select size="1" name="FC" onchange="location.href = this.options[selectedIndex].value">


这个
指的是
这个
是select元素的一部分的元素。

我做了更多的挖掘,找到了答案。首先,我测试了将页面的DocType从
Strict
更改为
Transitional
,然后重新验证。这使得错误消失了。然后我搜索了一下,发现了这个问题:

似乎
Strict
doctype不允许将
Input
(或
Select
)元素作为
Form
元素的直接后代。直接后代必须是错误消息中列出的元素之一。有了这些知识,我成功地消除了错误消息

为了修复它,我将代码更改为以下内容(我只是交换了
表单
Div
元素,并包含了wazz的建议):


我做了更多的挖掘,找到了答案。首先,我测试了将页面的DocType从
Strict
更改为
Transitional
,然后重新验证。这使得错误消失了。然后我搜索了一下,发现了这个问题:

似乎
Strict
doctype不允许将
Input
(或
Select
)元素作为
Form
元素的直接后代。直接后代必须是错误消息中列出的元素之一。有了这些知识,我成功地消除了错误消息

为了修复它,我将代码更改为以下内容(我只是交换了
表单
Div
元素,并包含了wazz的建议):


谢谢你的建议。我发现这个错误实际上是由前一个编码器如何使用
表单
元素引起的。至于
这个
,使用您建议的编辑似乎仍然有效。至于将其移动到JS函数中,我对JavaScript知之甚少。我必须做一些研究才能做到这一点。事实上,我不知道
Pageselector.FC
做什么,似乎也找不到任何相关信息。当您将div放入表单中时,
onchange
是否像最初发布的那样工作?好奇。请为有帮助的答案投票。至于投票,我会这样做,但Stack Exchange要求我在接受自己的答案之前等待24小时。谢谢你的建议。我发现这个错误实际上是由前一个编码器如何使用
表单
元素引起的。至于
这个
,使用您建议的编辑似乎仍然有效。至于将其移动到JS函数中,我对JavaScript知之甚少。我必须做一些研究才能做到这一点。事实上,我不知道
Pageselector.FC
做什么,似乎也找不到任何相关信息。当您将div放入表单中时,
onchange
是否像最初发布的那样工作?好奇。请为有帮助的答案投票。至于投票,我会这样做,但Stack Exchange要求我在接受自己的答案之前等待24小时。
是一种选择<代码>可能是另一个。见:@RouninsaysJesuisMonica True,文档似乎暗示
fieldset
是封装这些元素的预期方式。请注意,将DOCTYPE更改为HTML5是另一个不涉及更改内容的选项。@MrLister这是一个选项,但HTML5会创建其他必须修复的验证错误。它也没有XHTML的浏览器向后兼容性
<form id="Pageselector" action="">
    <div style="text-align:center;">
        <select size="1" name="FC" onchange="location.href = this.options[selectedIndex].value">
            <option selected="selected">Go to Page...</option>
            <option value="AC_1.html">Page 1: Introduction</option>
            <option value="AC_2.html">Page 2: Essential Optimization</option>
            <option value="AC_3.html">Page 3: Troubleshooting Tips</option>
            <option value="AC_4.html">Page 4: Patches &amp; Mods</option>
            <option value="AC_5.html">Page 5: In-Game Settings</option>
            <option value="AC_6.html">Page 6: In-Game Settings (Pt.2)</option>
            <option value="AC_7.html">Page 7: In-Game Settings (Pt.3)</option>
            <option value="AC_8.html">Page 8: Advanced Tweaking</option>
            <option value="AC_9.html">Page 9: Adv. Tweaking (Pt.2)</option>
            <option value="AC_10.html">Page 10: Neat Stuff &amp; Concl.</option>
        </select>
    </div>
</form>
<div style="text-align:center;">
    <form id="Pageselector" action="">
        <fieldset style="margin-left: 0px; margin-right: 0px; padding-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; border: 0px;">
            <select size="1" name="FC" onchange="location.href = this.options[selectedIndex].value">
                <option selected="selected">Go to Page...</option>
                <option value="AC_1.html">Page 1: Introduction</option>
                <option value="AC_2.html">Page 2: Essential Optimization</option>
                <option value="AC_3.html">Page 3: Troubleshooting Tips</option>
                <option value="AC_4.html">Page 4: Patches &amp; Mods</option>
                <option value="AC_5.html">Page 5: In-Game Settings</option>
                <option value="AC_6.html">Page 6: In-Game Settings (Pt.2)</option>
                <option value="AC_7.html">Page 7: In-Game Settings (Pt.3)</option>
                <option value="AC_8.html">Page 8: Advanced Tweaking</option>
                <option value="AC_9.html">Page 9: Adv. Tweaking (Pt.2)</option>
                <option value="AC_10.html">Page 10: Neat Stuff &amp; Concl.</option>
            </select>
        </fieldset>
    </form>
</div>