document.getElementById("input").readOnly=true; //O应大写
有两种方式可以实现input的只读效果:disabled 和 readonly。
自然两种出来的效果都是只能读取不能编辑,可是两者有很大不同。
Disabled说明该input无效,及其value不会传递给任何程序,比如asp、php等。
Readonly仅仅是无法编辑,不影响其值的传递。 Disabled使用:<INPUT type=”text” name=”username” value=”james”disabled>
Readonly使用:<INPUT type=”text” name=”partNumber” value=”1500″ readonly> |
disabled方式若要传值,可以添加隐藏的input标签 <input name="hiddenplanyear" id="hiddenplanyear" type="hidden" class="textfield" value="" />
js中:document.getElementById('hiddenplanyear').value = document.getElementById('planyear').value;
根据需求,需要根据后台传来的参数,动态设置select标签是否可以选择,因此,当判断某个select应当设为只读时,使用
- 1
- 2
- 1
- 2
来设置。
但是,这样设置有一个问题,标签被设置为只读之后,submit时将跳过这一标签,后台会取不到它的值。
要想设置只读的同时,允许后台取到标签的值,如果时input标签,可以使用如:
- 1
- 2
- 1
- 2
的语法。
但是,select标签原先就是readonly属性的,因此,这样设置之后,还是可以修改选中项。因此,后面改了用另外一个投机取巧的方法:
载入页面时,给需要设为只读的标签添加disabled属性:
- 1
- 2
- 3
- 1
- 2
- 3
在submit表单之前,再将标签的disabled属性移除: