js Select下拉框的只讀屬性設置

因爲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> 

①②使用起來相對於不太好用,文章前者更實用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章