我做web开发是从.Net开始的,大部分控件都是服务器端控件,用唯一的id进行识别,基本上不会用到name属性。
最近需要写一些cgi程序,发现name和id非常相似,甚至感觉是重复的属性,于是问了一下狗哥。狗哥说,区别在于,id相当于身份证号,name相当于姓名,换言之,身份证号是唯一的,而姓名可以重复。这应该是最标准的一个答案,但问题在于这对我们如何区别使用这两个属性没有任何帮助。
于是又仔细研究了一下,发现尽管非常相似,但两者的用途几乎完全不同:
- CSS只能处理id,而不识别name;
- 在表单中,服务器端要读取控件,只能通过name,而不识别id;
因此,如果需要处理表单,name属性是必须的;而对于CSS,id则是必不可少的。