为什么我需要<input>
表单元素的名称和 id 属性?
哪个用于POST数据发送,哪些可以排除?
答案 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)
name
和post
需要 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仍然可以访问该值并对其进行处理。