Forms 没有属性的HTML表单标记-有任何理由不这样做吗?

Forms 没有属性的HTML表单标记-有任何理由不这样做吗?,forms,html,Forms,Html,冒着听起来像个傻瓜的风险——我们公司的html(html5)设计师一直在给我功能性模拟,带有没有属性的表单标签 <form> <label for="name">Name</label> <input type="text" id="name" name="name"> </form> 名称 每次我看到这一幕,我对人性就失去了一点希望。但是我不知道我是否应该把他们都聚在一起,向他们讲解表单属性,以及为什么我们需要它

冒着听起来像个傻瓜的风险——我们公司的html(html5)设计师一直在给我功能性模拟,带有没有属性的表单标签

<form>
    <label for="name">Name</label>
    <input type="text" id="name" name="name">
</form>

名称
每次我看到这一幕,我对人性就失去了一点希望。但是我不知道我是否应该把他们都聚在一起,向他们讲解表单属性,以及为什么我们需要它们,因为我似乎找不到任何说明它们是“必需的”的文档。默认情况下,我知道表单标签会假定一些东西,比如方法和操作,但我更希望这些属性已经就位,而不是被忽略。对于我们这些从一开始就一直在编写HTML的人来说,情况就是这样

因此,一般的问题是-使用没有属性的表单标记是否有任何错误(不管您希望如何定义)?如果您想要的操作是当前页面,并且想要的方法是get,那么包含默认属性和排除默认属性的参数是什么?或者给它分配一个你不用的id

我希望看到这一点:

<form id="search_form" action="" method="get">
    <label for="name">Name</label>
    <input type="text" id="name" name="name">
</form>

名称

HTML4标准似乎要求采取行动

 action      %URI;          #REQUIRED 

这将取决于您要验证的DOCTYPE。例如,在HTML 4.01 Transitional and Strict中,
操作
属性是必需的,而
方法
属性是可选的


在HTML 5中,这两个属性都是可选的。

在表单上没有
id
action
属性的最大问题是,如果页面上有多个表单,则很难说出引用的是哪一个-在客户端或服务器代码中

正如James Montagne在HTML 4.01过渡版中提到的,
action
属性是必需的


作为一般问题,我个人总是明确说明
id
action
method
——保持这些重要属性的公开性,并强调它们不会被忘记。

然而,大多数浏览器都乐于将值默认为当前URL(假设为quirks模式)。没错,但是从技术上讲,html验证应该是一个空操作,而不是完全没有操作。我看到html4是必需的,但忽略了它的相关性,因为我们不再声明html4了。这一点不太难找到,但很难找到任何提及表单标记是否可以完全为空的内容。早在当时,表单标记的名称已被弃用,验证时需要id。现在我看不出有什么特别的说法,这是我对这个问题的看法。我喜欢宣布它们,因为这样做是有道理的——因为没有更好的表达方式。当他们停止时,我不知道是因为他们认为这样做是正确的,还是他们认为我会用正确的信息来填写。但我们不会雇佣html人员留下漏洞并要求全面审核。否则我们只能自己做,节省一些时间。@KaiQing-如果这是他们的要求,请与他们谈谈。没错-在这篇文章中,我真正想要的是一些说明表单标签实际上需要一些东西的文档。否则,我的论点仅仅是观点或偏好。在这种情况下,似乎就是这样。表单将不带属性提交。