input框中的name和id的区别


Posted in Javascript onNovember 16, 2016

1.

可以说几乎每个做过Web开发的人都问过,到底元素的ID和Name有什么区别阿?为什么有了ID还要有Name呢?! 而同样我们也可以得到最classical的答案:ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复的。

上周我也遇到了ID和Name的问题,在页面里输入了一个input type="hidden",只写了一个ID='SliceInfo',赋值后submit,在后台用Request.Params["SliceInfo"]却怎么也去不到值。后来恍然大悟因该用Name来标示,于是在input里加了个Name='SliceInfo',就一切ok了。

第一段里对于ID和Name的解答说的太笼统了,当然那个解释对于ID来说是完全对的,它就是Client端HTML元素的Identity。而Name其实要复杂的多,因为Name有很多种的用途,所以它并不能完全由ID来代替,从而将其取消掉。具体用途有:

用途1: 作为可与服务器交互数据的HTML元素的服务器端的标示,比如input、select、textarea、和button等。我们可以在服务器端根据其Name通过Request.Params取得元素提交的值。

用途2: HTML元素Input type='radio'分组,我们知道radio button控件在同一个分组类,check操作是mutex的,同一时间只能选中一个radio,这个分组就是根据相同的Name属性来实现的。

用途3: 建立页面中的锚点,我们知道<a href="URL">link</a>是获得一个页面超级链接,如果不用href属性,而改用Name,如:<a name="PageBottom"></a>,我们就获得了一个页面锚点。

用途4: 作为对象的Identity,如Applet、Object、Embed等元素。比如在Applet对象实例中,我们将使用其Name来引用该对象。

用途5: 在IMG元素和MAP元素之间关联的时候,如果要定义IMG的热点区域,需要使用其属性usemap,使usemap="#name"(被关联的MAP元素的Name)。

用途6: 某些特定元素的属性,如attribute,meta和param。例如为Object定义参数<PARAM NAME = "appletParameter" VALUE = "value">或Meta中<META NAME = "Author" CONTENT = "Dave Raggett">。

显然这些用途都不是能简单的使用ID来代替掉的,所以HTML元素的ID和Name的却别并不是身份证号码和姓名这样的区别,它们更本就是不同作用的东西。

表单元素(form input textarea select)与框架元素(iframe frame)用 name

这些元素都与表单(框架元素作用于form的target)提交有关, 在表单的接收页面只接收有name的元素, 赋ID的元素通过表单是接收不到值的, 你自己可以验证一下.

有一个例外: A 可以赋 name 作为锚点, 也可以赋ID。

2.

id要符合标识的要求,比如大小写敏感,最好不要包含下划线(因为不兼容CSS)。而name基本上没有什么要求,甚至可以用数字。ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复的。

<input> 标签规定用户可输入数据的输入字段。

根据不同的 type 属性,输入字段有多种形态。输入字段可以是文本字段、复选框、密码字段、单选按钮、按钮等等。
id:作为标签的唯一标识。

name:作为可与服务器交互数据的HTML元素的服务器端的标示。

3.

ID 是 以 #定义的CSS样式

也可以用JS获取来控制 getElementById(这里是ID) 来获取

name 很多了,就是给当前标签或元素指定名称,也可以用JS来控制值,form提交后获取的时候就需要获取name名称。

4.

id 一般用于css和js中引用,name用于表单提交,只有加了name属性的标签元素才会提交到服务器。

以上所述是小编给大家介绍的input框中的name和id的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript面向对象之静态与非静态类
Feb 03 Javascript
Javascript将string类型转换int类型
Dec 09 Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
JavaScript实现QueryString获取GET参数的方法
Jul 02 Javascript
IE6下拉框图层问题探讨及解决
Jan 03 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
Jul 18 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
js a标签点击事件
Mar 30 Javascript
在微信小程序中渲染HTML内容的方法示例
Sep 28 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 Javascript
JS实现电商商品展示放大镜特效
Jan 07 Javascript
微信小程序 页面传参实例详解
Nov 16 #Javascript
JS中关于事件处理函数名后面是否带括号的问题
Nov 16 #Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
Nov 16 #Javascript
jQuery实现的购物车物品数量加减功能代码
Nov 16 #Javascript
使用JavaScript获取URL中的参数(两种方法)
Nov 16 #Javascript
微信小程序 保留小数(toFixed)详细介绍
Nov 16 #Javascript
微信小程序 获取相册照片实例详解
Nov 16 #Javascript
You might like
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
PHP小教程之实现链表
2014/06/09 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
python xml解析实例详解
2016/11/14 Python
Django与JS交互的示例代码
2017/08/23 Python
快速了解Python中的装饰器
2018/01/11 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
四群教育工作实施方案
2014/03/26 职场文书
企业文明单位申报材料
2014/05/16 职场文书
公司员工安全协议书
2014/11/21 职场文书
信用卡工资证明范本
2015/06/19 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
解决numpy和torch数据类型转化的问题
2021/05/23 Python
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
MySQL笔记 —SQL运算符
2022/01/18 MySQL
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers