JS能否展开select(下拉框)

时间:2021-11-22 20:31:07
我想做一个按钮,点击之后可以展开某个select,请问可否实现?我找到了下面这个代码,可是他展开的效果和我们点击下拉框展开的效果不一样。大家看看。。。
<select size="1" id="test1"> 
<option value="dd">dd</option>
</select>
<a onclick='if(test1.size==1){test1.size=test1.length} else{test1.size=1}'>点击</a>

15 个解决方案

#1


你要求的效果是怎么样的?这个没错呀,在listbox和dropdownlist之间切换的

#2


设置select的size越大展开的越大!

#3


帮顶 。。

#4


不是 这个展开的效果和我们手动点击下拉菜单的效果不一样 我想实现一模一样的效果

#5


好像没有把。只有试试用DIV来模拟SELECT吧。

#6


楼主我试过n多办法,真的不是js能干的事情

#7


最后用div做,还简单

#8


下面代码好像只能在IE下出效果

<script>
function demo(){
    test1.focus();
    var WshShell = new ActiveXObject("Wscript.Shell");
    try {
WshShell.SendKeys("%{DOWN}");
    } catch(e){}         
    WshShell.Quit;
}
</script> 

<select size="1" id="test1"><option value="dd">dd </option></select>
<a onclick='demo();'>点击</a>

#9


楼上牛人啊

#10


简单
<script>
function a();
var oo=document.getElementById("createedite");
var sel=document.createElement("select");
sel.id="sel1";
sel.multiple="multiple";
oo.appendChild(sel)
for(i=1;i<5;i++){
    var op=document.createElement("OPTION");
op.value=i;
 op.innerHTML=i;
sel.appendChild(op);
}
</script>点击调用a()就行了,动态添加multiple属性

#11


function a(){
var oo=document.getElementById("createedite");
var sel=document.createElement("select");
sel.id="sel1";
sel.multiple="multiple";
oo.appendChild(sel)
for(i=1;i<5;i++){
var op=document.createElement("OPTION");
op.value=i;
op.innerHTML=i;
sel.appendChild(op);
}
}少括号了

#12


#8楼的代码在IE下好像也无效 
#11楼的代码我不会用,下面这样对吗

<script>
function a(){
var oo=document.getElementById("createedite");
var sel=document.createElement("select");
sel.id="sel1";
sel.multiple="multiple";
oo.appendChild(sel)
for(i=1;i<5;i++){
var op=document.createElement("OPTION");
op.value=i;
op.innerHTML=i;
sel.appendChild(op);
}
}
</script>
<select id="sel1"><option value="dd">dd </option></select>
<a onclick='a();'>点击</a>

#13


<script>
function a(){
var sel=document.getElementById("sel1");
sel.multiple="multiple";

}
</script>
<select id="sel1"><option value="dd">dd </option><option value="cc">cc </option></select>
<a onclick='a();'>点击</a>貌似是这样

#14


代码很简单就是动态添加了一个select控件的multiple属性

#15


该回复于2010-08-06 11:24:45被版主删除

#1


你要求的效果是怎么样的?这个没错呀,在listbox和dropdownlist之间切换的

#2


设置select的size越大展开的越大!

#3


帮顶 。。

#4


不是 这个展开的效果和我们手动点击下拉菜单的效果不一样 我想实现一模一样的效果

#5


好像没有把。只有试试用DIV来模拟SELECT吧。

#6


楼主我试过n多办法,真的不是js能干的事情

#7


最后用div做,还简单

#8


下面代码好像只能在IE下出效果

<script>
function demo(){
    test1.focus();
    var WshShell = new ActiveXObject("Wscript.Shell");
    try {
WshShell.SendKeys("%{DOWN}");
    } catch(e){}         
    WshShell.Quit;
}
</script> 

<select size="1" id="test1"><option value="dd">dd </option></select>
<a onclick='demo();'>点击</a>

#9


楼上牛人啊

#10


简单
<script>
function a();
var oo=document.getElementById("createedite");
var sel=document.createElement("select");
sel.id="sel1";
sel.multiple="multiple";
oo.appendChild(sel)
for(i=1;i<5;i++){
    var op=document.createElement("OPTION");
op.value=i;
 op.innerHTML=i;
sel.appendChild(op);
}
</script>点击调用a()就行了,动态添加multiple属性

#11


function a(){
var oo=document.getElementById("createedite");
var sel=document.createElement("select");
sel.id="sel1";
sel.multiple="multiple";
oo.appendChild(sel)
for(i=1;i<5;i++){
var op=document.createElement("OPTION");
op.value=i;
op.innerHTML=i;
sel.appendChild(op);
}
}少括号了

#12


#8楼的代码在IE下好像也无效 
#11楼的代码我不会用,下面这样对吗

<script>
function a(){
var oo=document.getElementById("createedite");
var sel=document.createElement("select");
sel.id="sel1";
sel.multiple="multiple";
oo.appendChild(sel)
for(i=1;i<5;i++){
var op=document.createElement("OPTION");
op.value=i;
op.innerHTML=i;
sel.appendChild(op);
}
}
</script>
<select id="sel1"><option value="dd">dd </option></select>
<a onclick='a();'>点击</a>

#13


<script>
function a(){
var sel=document.getElementById("sel1");
sel.multiple="multiple";

}
</script>
<select id="sel1"><option value="dd">dd </option><option value="cc">cc </option></select>
<a onclick='a();'>点击</a>貌似是这样

#14


代码很简单就是动态添加了一个select控件的multiple属性

#15


该回复于2010-08-06 11:24:45被版主删除