HTML表单 - 是否需要名称和ID?

时间:2010-06-16 07:52:19

标签: html forms post

为什么我需要<input>表单元素的名称 id 属性?

哪个用于POST数据发送,哪些可以排除?

10 个答案:

答案 0 :(得分:17)

服务器端使用

name,如果您计划处理该字段,则必需id只有label元素,当被屏幕阅读器点击和访问时,可以触发/调用表单控件(输入,选择)。

<form method=POST action="form-processor.php">
    <input name=first_name value=john>
</form>

结果

$_POST = array( 'first_name' => 'john' );

如果方法为GET,则将其附加到查询字符串:

http://site-name.com/form-handler.php?first_name=john

它对于带有隐藏输入的查询字符串附加很受欢迎:

<input type="hidden" name="q" value="1">

答案 1 :(得分:5)

不需要ID。名称也不是必需的,但如果没有它,浏览器将不会发送<input>的数据。这与POST和GET相同。

答案 2 :(得分:3)

name是在执行帖子时确定“变量名称”的属性。 id用于javascript目的等。

答案 3 :(得分:3)

名称用于POST和GET。

id 用于样式化。

用于将相同的样式应用于具有相同“类”的一堆元素。

这就是我记忆它们的方式。

答案 4 :(得分:2)

输入元素没有必需的属性。

http://w3schools.com/tags/tag_input.asp - w3schools也总是有很好的信息。

答案 5 :(得分:1)

名称用于POST发送

答案 6 :(得分:0)

namepost需要

get ...但不是id ... id用于客户端处理......

答案 7 :(得分:0)

名称是必需的,id并不重要。但是,id用于将标签与常用表单输入字段(如单选按钮,文本框等)相关联。

答案 8 :(得分:0)

名称是必需的,以便您可以在下一页中发布或获取值。你需要使用css和类似的东西进行操作。也可以只使用名称。所以名字更重要。给一个id使它看起来标准化。

答案 9 :(得分:0)

HTML5报价

https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-name确认它不是强制性的:

  

name content属性提供表单控件的名称,该控件在表单提交和表单元素的elements对象中使用。如果指定了属性,则其值不能为空字符串或isindex。

如果未指定该怎么办?

在我tested with nc的Chromium 75中,它没有被发送:

<!doctype html>
<html lang=en>
    <head>
        <meta charset=utf-8>
        <title>Min sane</title>
    </head>
    <body>
        <form action="http://localhost:8000" method="post">
            <p><input type="text" name="key" value="default value"></p>
            <p><button type="submit">Submit</button></p>
        </form>
    </body>
</html>

发送:

key=default+value

但没有name根本没有。

但是都通过了HTML验证程序:https://validator.w3.org/

为什么要一个没有input的{​​{1}}?

JavaScript仍然可以访问该值并对其进行处理。