简单说两种方式,实质是一样的,一种简介明了,一种稍显复杂
实质都是用:
οnmοusemοve="this.setCapture();" οnmοuseοut="this.releaseCapture();" οnfοcus="this.blur();"
这句代码来控制用户无法选择和更改该控件的值
一、先说简单的(平时都用简单的,但是有大量select控件需要做readonly处理时用复杂的更简单)
<select οnmοusemοve="this.setCapture();" οnmοuseοut="this.releaseCapture();" οnfοcus="this.blur();">
<option selected >aaa</option>
<option>bbb</option>
</select>
二、贴一个复杂的,就是把变化放入js,来实现而已,多时候有用,另外只在脚本控制时候用
该方法转自CSDN博客,http://blog.csdn.net/lengyueqinghui/archive/2009/08/18/4457660.aspxfunction
// set all input/select/textarea readonly
function allReadonly(){
// input readonly
var inputEle = document.getElementsByTagName("input");
for(var i=0; i<inputEle.length; i++){
inputEle[i].setAttribute("readonly","true",0);
inputEle[i].onclick = function setClickFalse(){return false;}
inputEle[i].onfocus = function setFocusFalse(){return false;}
inputEle[i].onblur = function setBlurFalse(){return false;}
}
// select readonly
var selectEle = document.getElementsByTagName("select");
for(var i=0; i<selectEle.length; i++){
setReadOnly(selectEle[i]);
}
// textarea readonly
var textareaEle = document.getElementsByTagName("textarea");
for(var i=0; i<textareaEle.length; i++){
textareaEle[i].setAttribute("readonly","true",0);
}
}
// select readonly
function setReadOnly(obj){
obj.onmouseover = function(){
obj.setCapture();
}
obj.onmouseout = function(){
obj.releaseCapture();
}
obj.onfocus = function(){
obj.blur();
}
obj.onbeforeactivate = function(){
return false;
}
}
// select readonly rollback
function rollBack(obj){
obj.onmouseover = function(){
}
obj.onmouseout = function(){
}
obj.onfocus = function(){
}
obj.onbeforeactivate = function(){
}
}