为什么这个HTML表单无效?

为什么这个HTML表单无效?,html,forms,validation,Html,Forms,Validation,您好,最近我开始了一门课程,我已经能够排除所有其他验证错误,但我不明白为什么这不能用w3验证 <div id="conform"> <form method="post" action="" id="form1"> Name: <input type="text" name="first_name" /><br></br> Subject: <input type="text" name="department" id="de

您好,最近我开始了一门课程,我已经能够排除所有其他验证错误,但我不明白为什么这不能用w3验证

<div id="conform">
<form method="post" action="" id="form1">
 Name:  <input type="text" name="first_name" /><br></br>
Subject: <input type="text" name="department" id="department"/><br></br>
    Department:
     Sales  <input type="radio" name="red" id="red"/>
     Support    <input type="radio" name="amber" id="amber"/>
     Other  <input type="radio" name="red" id="green"/><br></br>
     Content:   <textarea name="details" id="messagedetails" cols="30">
     </textarea><br></br>
     <input type="submit"  value="Submit"/>
</form>
</div>

名称:

主题:

部门: 销售额 支持 其他

内容:

如果有人能给我解释一下。。谢谢

嗨,我应该补充,这些是我得到的主要错误


它们都是类似的。

break是一个自动关闭的标签,也就是说,你可以使用


而不是

你没有发布文档类型,所以我假设是HTML5

  • 它缺少语义标记,例如元信息和必需的属性
  • 没有放置结果的位置(如果这是执行旧版回发,则可能不适用)
  • 见理由1和2
  • 更新

    有关上述各点,请参见以下链接:


    对于@Keith所说的,用

    代替


    。另外,
    表单[动作]
    不能为空;即使您不使用它(即,如果您拦截JS提交),您也需要在其中包含一些内容。通常是
    “#”

    您的单选按钮应该具有相同的名称

    这是我从验证器中看到的,除了上面列出的其他问题

    元素窗体上的属性操作的错误值:必须为非空。 IRI引用的语法:Any 网址。例如:/hello、#canvas或。人物 应在NFC中表示,空格应转义为%20

    如果您想知道为什么它不能通过w3c验证,我建议您访问以下站点:

    他们很清楚为什么这是错误的。此外,看到他们的报告,浏览器完全可以理解HTML=p,这让我感到惊讶

    编辑留下的错误是,在HTML中,您应该用块级元素(如div、p等)括住文本和输入字段。

    :这意味着符合称为文档类型定义(DTD)的形式化语法定义,至少在包含XHTML的经典HTML中是如此(HTML5草案对有效性有自己的看法)

    您的代码片段主要对应的已发布DTD是XHTML 1.0 Transitional。使用它,验证器报告的唯一错误是以下内容(并且是不言自明的):

    未指定必需的属性“行”

     Content:   <textarea name="details" id="messagedetails" cols="30">
    
    内容:
    
    这并不意味着标记在其他方面是好的。有效性是一个正式的东西,甚至不意味着正确性,更不意味着质量。首先,使用


    ,虽然在XHTML中正式有效,但违反了著名的XHTML 1.0规范:

    “C.2.空元素


    在空元素的尾随/和>之前包含一个空格,例如


    。此外,对空元素使用最小化标记语法,例如

    ,因为XML允许的替代语法

    在许多现有用户代理中会产生不确定的结果。”

    你会遇到什么验证错误?他们没有告诉你为什么它没有验证吗?使用a。它会告诉你。也可能是你的表单操作是空的。你可能想添加一个操作或将其完全删除。是的,HTML是一个很难解决的问题。十年前就应该扔掉它。而且MS坚持拥有自己的版本也没有任何帮助,Differ来自其他人的nt。@HotLicks-Amen;浏览器的宽恕几乎达到了上帝般的程度,这让我很遗憾他们的开发人员=/是的,我听不懂行话!:)嗨,你能推荐我在哪里可以了解表单的元信息和属性吗?仅供参考,表单只需放置,它不是一个功能性表单,因为我们还没有在课程中了解到这一点!:)Kieronboz可能打算让3个无线电元素具有相同的名称属性。但是不同的名称不会使HTML无效。