【发布时间】:2013-04-30 10:08:10
【问题描述】:
HTML 中的从前
我在查看 W3Fools 并找到 this paragraph,与 W3Schools 中的错误有关:
<form> First name: <input type="text" name="firstname" /><br /> Last name: <input type="text" name="lastname" /> </form>此代码错误。非块级元素(如
<input>)是 在 HTML5 之前,直接在<form>标签内无效。
好吧,因为我总是这样格式化,所以我对自己说“等等,我一直都错了”。并去验证它以检查它是否正确。实际上,这段代码没有通过validation。
然后,搜索正确的标记,我从更可靠的来源找到了几个示例,但以下示例都没有通过验证器。
坏的、好的和丑的
1。 W3Schools
<form>
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
</form>
2。 Mozilla Network Developer
在“示例”部分,我发现了这个:
一个常见的用例场景
<!-- A common form that includes input tags --> <form action="getform.php" method="get"> First name: <input type="text" name="first_name" /><br /> Last name: <input type="text" name="last_name" /><br /> E-mail: <input type="email" name="user_email" /><br /> <input type="submit" value="Submit" /> </form>
3。 W3C Wiki
<form action="http://www.google.com/search" method="get">
<label>Google: <input type="search" name="q"></label>
<input type="submit" value="Search...">
</form>
一大堆代码
更多细节:
我正在尝试在 HTML 4.01 和 XHTML 1.0 中将代码验证为 HTML 片段。 我发现的反复出现的错误是:
文档类型不允许此处的元素“输入”;缺少一个“p”, “h1”、“h2”、“h3”、“h4”、“h5”、“h6”、“div”、“pre”、“地址”、 "fieldset", "ins", "del" 开始标签
问题
我应该使用什么正确且有效的标记来制作表单?
提前致谢。
编辑:
回答了similar question,将 OP 重定向到 HTML4 specification 的表单部分。他们提供了这个代码:
<FORM action="http://somesite.com/prog/adduser" method="post">
<P>
<!--...stuff...-->
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>
</FORM>
首先,它与wiki 的代码不同。但没关系,据我所知,wiki 并不是 100% 准确的......但是:
他们通过将所有标记括在
<p>中来修复验证错误。但是表格不是段落,不是吗?此代码通过验证,但我认为这不是很语义...您给我的专家回答(谢谢!)在大多数情况下,是将内部标签括在
<fieldset>中,但如果我只需要一个fieldset(例如,带有只有一个领域或自相关领域),这是正确的吗?这可能不是多余的代码(因为fieldset标签应该包含类似的字段)?
【问题讨论】:
-
@Zenith 我还没有看到这个问题。但是,在这种情况下,我必须编辑我的,因为给出的答案让我更加怀疑。感谢您提供链接并通知我重复的问题;)
标签: html forms html-validation