最近项目中用到下拉列表,因为浏览器对下拉列表的解析不同,且项目要求要用各自浏览器自带的select效果。这个让我完全放弃了使用别人写的下拉列表控件(好比: bootstrap dropdown)。
下面是我select的一些总结。bootstrap
select 不存在站位文本,即不存在placeholder属性。
没有这个属性,致使最大的问题就是select框显示值必须是其option里的一项,这也就是select没法实现input的placeholder效果。如今网上的一些dropdown控件实现这个效果,他们都是把把select用Div,ui,li加上js模拟出来的。浏览器
select的option项油盐不进。
有时候咱们但愿当用户点击option时触发一个js方法。很抱歉这个没法实现,由于option的事件都被select自己控制了。还有就是在option里面或者外面加元素都是很差用的,好比像下面这段代码。当时的想法是在option里面或外面套一个,而后获取外面元素的事件,这样就能够模拟option被点击的事件,可是惋惜没有成功。在外面加元素会让select没法认识option,就会排除这一项。因此大部分监听事件都是在select上监听,好比用onChange。ui
<select> <span><option>good</option></span> <option><span>well<span></option> </select>
option里添加样式也是无效的,select自己已经给样式了,不接收其余的样式。因此更改样式只能在select标签上更改。
附上 select的事件,属性和方法
http://blog.csdn.net/huozhicheng/article/details/5416060spa