select控件是否有readonly属性
select控件自身没有readonly属性,只有disable属性。
能否使用disable属性设置select控件为只读
select设置为disable属性后,确实不可改,起到只读的作用,但设置为disable后,name属性也失效了,传递到后台时,对应的属性值变为null了。
有一种解决办法是在提交到后台之前将disable属性去掉,但在页面上不应过多依赖js处理数据,因为如果出错了,会影响到数据安全。建议的解决办法是将select设置为disable属性后,在后面增加一个hidden类型的input控件,name和值都与select相同。
github上有一个readonly插件完成了上述动作,该插件支持select和input控件,在项目中引入readonly.js文件后,可以直接使用。
1 | <select id="testSelectReadOnly" > |
有引入jquery时,语法如下:
1 | readonly('#testSelectReadOnly', true); //set readonly |
您可以在这里观察和调试这段代码。