有一个修改页面,input中的默认值从数据库中取得,默认情况下不允许修改(通过设置为readOnly),当点击一个‘修改’按钮时,才可以修改。
但是select类型的input没有readOnly属性。
所以我想把下拉列表设置为一个值,然后disabled,下面是这个想法的示例:
<script language = "javascript">
function setsel(){
var x=document.getElementById("mySelect");
var mm = "b";
var mlength = x.length;
for(i=0;i<=mlength;i++){
if(mm == x.options[i].value){
x.options[i].selected = true;
}
}
x.disabled=true;
}
window.onload = setsel;
</script>
可是加载页面时,列表框不能disabled,仍可选。如果把for{}注释掉,只留x.disabled=true就可以。为什么呢?另外有什么别的好办法来实现吗?
谢谢进来回复的朋友!!

解决方案 »

  1.   

    哦,我的问题。
    for(i=0;i<=mlength;i++){
    改为:
    for(i=0;i<=mlength-1;i++){
    就可以了。
    请问有什么其他的办法吗?
      

  2.   

    for(i=0;i<=mlength;i++){
    这句数组越界出错,导致后面的x.disabled=true;执行不到,把这循环改为for(i=0;i<mlength;i++){
      

  3.   


    function setsel(){
    var x=document.getElementById("mySelect");
    var mm = "b";
    var mlength = x.length;
    for(i=0;i<=mlength;i++){
    if(mm == x.childNodes[i].value){
    x.childNodes[i].selected = true;
    }
    }
    x.disabled=true;
    }
    window.onload = setsel;</script>ff 下是正常的