<input> name和id

一、只能用id:

1、for属性指定与label关联的 form控件(这里指input)的id

<label  for="MyInput">My Input</label>

<input  id="MyInput"  type="text">

2、CSS的元素选择机制,以#MyId的方式指定应用样式的元素,不能用name替代。

3、脚本中获得对象:例如上面的input,要在脚本中获得输入的内容,可以直接以MyInput.value来获得。

如果用DOM的话,则用document.getElementByIdx("MyInput").value,如果要用name的话,通常先得到包含控件的form,例如document.forms[0],然后从form再引用name,注意这样得到的是经过计算后将发送给服务器的值。

二、只能用name

1、表单(form)的控件名

提交的数据都用控件的name而不是id来控制。因为有许多name会同时对应多个控件,比如checkbox和radio,而id必须是全文档中唯一的。此外浏览器会根据name来设定发送到服务器的request。因此如果用id,服务器是无法得到数据的。

2、frame和window的名字

用于在其他frame或window指定target。

三、作为锚点时两者可以通用,但尽量用id

四、其它区别

1、id要符合标识的要求,比如大小写敏感,最好不要包含下划线(因为不兼容CSS)。而name基本上没有什么要求,甚至可以用数字。

2、name主要是表单元素里才有的属性。通过js的document.表单名称.文本框.value来获取文本框的值,其中的表单名称和文本框名称指的是name。

而非表单元素例如div,span等是没有name属性的,而id属性是任何一个HTML元素都会有的。当你需要用js获取非表单元素对象是就得用document.getElementByIdx("id")

如果用DOM的话,则用document.getElementByIdx("MyInput").value,如果要用name的话,通常先得到包含控件的form,例如document.forms[0],然后从form再引用name,注意这样得到的是经过计算后将发送给服务器的值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,328评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,905评论 18 399
  • HTML 中 id与name 区别 一个name可以同时对应多个控件,比如checkbox和radio。而id必须...
    Yinag阅读 3,935评论 0 1
  • 因为那天晚上的巅峰会,看到大家对于那首《Feeling Good》有很多争议,昨天听了一天健哥版的,今天陆续辗转听...
    南风弋Zhuyi阅读 806评论 0 0
  • 1 云姨是我家的老邻居。 两周前,云姨把自家门钥匙托付给了我家,“儿媳妇怀孕了,我去北京照顾一下,家里有什么事儿就...
    冰糖陈皮阅读 5,466评论 36 50