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

问题描述 投票:0回答:10

为什么我需要 <input> 表单元素的 name

id
属性?

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

html forms post
10个回答
30
投票

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">

    


9
投票
id

Name 也不是强制性的,但如果没有它,浏览器将不会发送 <input> 的数据。这对于

POST
GET 是相同的。


4
投票
name

用于 POST 和 GET。

id

用于样式。

class

用于将相同的样式应用于同一“类”的一堆元素。 我就是这样记住它们的。


3
投票
name

是决定发帖时“变量名称”的属性。

id
用于 JavaScript 目的等。
    


3
投票
HTML5 报价

命名表单控件:name属性确认它不是强制的:

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

如果不指定会怎样?

在 Chromium 75 中,我用

nc

进行了测试,它只是没有被发送:

<!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 验证器

为什么你想要一个没有

input

name

JavaScript 仍然可以访问该值并用它做一些事情。
    


0
投票

POST

GET 所必需的...但不是 id... id
 用于客户端处理。


0
投票
是必需的,以便您可以在下一页中发布或获取值。您需要使用

Id 才能使用 CSS 等进行操作。仅通过名称也是可能的。所以名字更重要。给出 id 使其看起来标准化。

只想添加名称属性

0
投票
(如果您正在使用

无线电元素)。 通过 name 属性,无线电组中的无线电将属于在一起。下面的例子:

<p>Colors</p> <div> <input type="radio" name="colors" value="red" id="radio-red"><label for="radio-red">Red</label> <input type="radio" name="colors" value="blue" id="radio-blue"><label for="radio-blue">Blue</label> </div> <p>Pets</p> <div> <input type="radio" name="pets" value="cats" id="radio-cats"><label for="radio-cats">Cats</label> <input type="radio" name="pets" value="dogs" id="radio-dogs"><label for="radio-dogs">Dogs</label> </div>

供您玩的链接:
https://codepen.io/bj-rn-andreasson-jogmark/pen/PoQprja

对于

0
投票
之外的表单元素,不需要指定

id

form
。如果表单中包含此类元素,基于 Chromium 的浏览器将发出警告,但 Firefox 不会。
可以通过 CSS 或 JavaScript 使用复选框和单选按钮来控制后续元素的可见性(使用 CSS 
display

)。这可以使页面变得整洁,并大大减少使用键盘的用户需要执行的选项卡操作量,只需在需要时单击控件即可显示隐藏元素。

这种用法不一定需要 
name

id

 属性,但如果控件具有关联的 
id
 元素(它们不是其后代),则需要 
label
 属性。对于后续元素可见性的 CSS 控制,CSS 定义中使用的元素必须是其关联的 
label
 的同级元素,因为 
label
 的子级不能在 CSS 中用于控制有关 
label
 或他们的后代。


-1
投票
是必需的,

id并不那么重要。但是,id用于将标签与常见表单输入字段(如单选按钮、文本框等)相关联。

© www.soinside.com 2019 - 2024. All rights reserved.