有一个修改页面,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就可以。为什么呢?另外有什么别的好办法来实现吗?
谢谢进来回复的朋友!!
但是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就可以。为什么呢?另外有什么别的好办法来实现吗?
谢谢进来回复的朋友!!
for(i=0;i<=mlength;i++){
改为:
for(i=0;i<=mlength-1;i++){
就可以了。
请问有什么其他的办法吗?
这句数组越界出错,导致后面的x.disabled=true;执行不到,把这循环改为for(i=0;i<mlength;i++){
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 下是正常的