因爲Select下拉框只支持disabled屬性,不支持readOnly屬性,
但是用disabled就無法將下拉框中的數據讀出來,所以要想辦法將select下拉框設置成只讀的。
將select下拉框設置成readonly 的兩種辦法。
第一種:
<script>var f=s.selectedIndex</script>
<select name=s οnchange="selectedIndex=f">
<option>1 </option>
<option selected>2 </option>
</select>
第二種:
<span οnmοusemοve="this.setCapture();" οnmοuseοut="this.releaseCapture();" οnfοcus="this.blur();">
<select >
<option>1 </option>
<option selected>2 </option>
</select>
</span>
其中οnmοusemοve="this.setCapture();" οnmοuseοut="this.releaseCapture();" 屏蔽了鼠標事件,
οnfοcus="this.blur();"屏蔽了鍵盤事件,οnfοcus="this.blur();"表示該對象將獲得焦點時就讓它失去焦點,按 鍵盤的TAB鍵時跳過它,使下一個控件獲得焦點。
在網上搜索了一下,發現有個一下類似的方法:
①
<select name="select123" onbeforeactivate="return false;" οnfοcus="this.blur();" οnmοuseοver="this.setCapture();" οnmοuseοver="this.releaseCapture();">
<option>aaa</option>
</select>
②或者使用如下的js腳本:
<select name="select123">
<option>aaa</option>
</select>
<script type="text/javascript">
SetReadOnly(document.getElementById("select123"));
function SetReadOnly(obj){
if(obj){
obj.onbeforeactivate = function(){return false;};
obj.onfocus = function(){obj.blur();};
obj.onmouseover = function(){obj.setCapture();};
obj.onmouseout = function(){obj.releaseCapture();};
}
}
</script>
①②使用起來相對於不太好用,文章前者更實用。