【问题标题】:Can a HTML input name contain spaces, commas etc? [duplicate]HTML 输入名称可以包含空格、逗号等吗? [复制]
【发布时间】:2013-06-28 01:49:57
【问题描述】:

基本上,我可以输入<input name="total sum(userID2223)" type="text" /> 之类的名称吗?有什么规定吗?

【问题讨论】:

  • 这是给你的答案:stackoverflow.com/a/13858670/362536
  • 您为什么要这样做?名称与文档中出现的字段相关。在您的示例中,我将使用 totalsum 或类似的东西。如果您开始以某种方式命名它们,使它们与系统上的特定用户相关联,您的后端处理将成为一场噩梦。如果您需要包含特定于用户的数据,请在 hidden 字段中添加。

标签: php html forms


【解决方案1】:

是的,你可以。当 PHP 读取表单时,您将能够使用$POST["total sum(userID2223)"] 来寻址数据。

如果不知道您要做什么,我不能肯定地说,但可能某处发生了错误的设计决策。

【讨论】:

    【解决方案2】:

    在 HTML4 中是不允许的:来自http://www.w3.org/TR/html401/types.html#type-cdata

    ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 (" _")、冒号 (":") 和句点 (".")。

    有趣的是,在NAME 属性中使用[] 一直很常见,尽管上面不允许这样做; PHP 会将这些输入转换为_$GET 和$_POST 中的数组。

    HTML5 允许:来自http://www.w3.org/TR/html5/forms.html#attr-fe-name

    name 允许任何非空值,但名称“charset”和“isindex”是特殊的

    对于您的应用程序,我建议使用数组表示法:

    <input name="total[2223]" type="text" />
    

    那么在 PHP 中它将是 $_POST['total'][2223]。

    【讨论】:

    • HTML 4 中的 name 属性被定义为包含 CDATA,而不是 NAME 令牌。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2013-09-25
    • 1970-01-01
    • 2018-05-05
    • 2015-09-23
    • 1970-01-01
    相关资源
    最近更新 更多