HTML元素的name属性可以包含空格吗?

36
在我们设计网页时,项目团队提出了一个问题。我们能否在HTML元素的name属性中使用空格等白色字符呢?例如:<input type="checkbox" name="first check box"> 我的主要担忧是这种属性值在不同浏览器中的行为差异。
我们现在处于设计阶段,在编写代码和测试之前,还需要很长一段时间,因此我向专家请教这个问题。
谢谢!

6
设计时可以编写代码。 - Don Roby
2
为什么你要等很长时间才能测试这个? - ceejayoz
1
值得一看:https://dev59.com/83VD5IYBdhLWcg3wJIEK#79022 - Leniel Maccaferri
2个回答

47

是的。

name属性包含CDATA。这个属性可以设置为任何你想要的值(不要包括前导或尾随空格,因为用户代理可能会忽略它们,但中间的空格是可以的)。

请注意,name属性的数据类型不是NAME tokens(虽然id 属性是(id属性不需要ID token),所以你没有像NAME tokens一样受到限制。


+1 @David 是正确的,正如 @preinheimer 指出的那样:http://www.w3.org/TR/html401/interact/forms.html name CDATA #IMPLIED -- name of form for scripting 学到了东西,谢谢。 - Pekka
是的。"CDATA 是文档字符集中的字符序列,可能包括字符实体。" - Quentin

1

大多数浏览器都可以很好地处理这个问题,只要它们被正确引用。然而,为了消除边角情况,更明智的做法是使用驼峰命名法并避免浏览器无法正确处理的可能性。


4
哪个浏览器不能正确处理它?(当规范说明我想要执行的操作是正确的时,我更愿意避免在未指定的浏览器中进行黑客攻击来解决未经确认的错误) - Quentin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接