第一种方法(这种方法在IE上能实现,但会提示警告信息):
1、首先将焦点给Select
2、然后模拟按键Alt+↓。模拟按键是使用ActiveX控件来完成的。第二种方法:
1、改变select框的高度
<select size="1" name="D1" id="test1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<input type="button" value="提交" name="B1" onclick="if(test1.size==1){test1.size=test1.length} else{test1.size=1}">而我需要的效果是同select本身的下拉箭头单击时一样,虽然第一种方法效果不错,但不兼容其他浏览器啊。求高手!!!
1、首先将焦点给Select
2、然后模拟按键Alt+↓。模拟按键是使用ActiveX控件来完成的。第二种方法:
1、改变select框的高度
<select size="1" name="D1" id="test1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<input type="button" value="提交" name="B1" onclick="if(test1.size==1){test1.size=test1.length} else{test1.size=1}">而我需要的效果是同select本身的下拉箭头单击时一样,虽然第一种方法效果不错,但不兼容其他浏览器啊。求高手!!!
输入框下面跟一个select组件:
组件要足够的size展示你所有的选项
组件要用绝对布局,动态获取上头那个输入框的X和Y,来决定它的位置
控制这个select的style.display来显示和隐藏它以前写过的代码片段:<select id="selectmenu" ondblclick="onselect()" style="background-color: gray;"></select>
vspan.style.display = "block";
vspan.style.top = vlisten.offsetTop + vlisten.offsetHeight;
vspan.style.left = vlisten.offsetLeft; //事件X坐标
vselect.innerHTML = "";
vselect.size = result.length > 20 ? 20 : result.length; for (i = 0;i < result.length - 1; i++){
var child = document.createElement("option");
child.setAttribute("value",result[i]);
child.innerHTML = result[i];
vselect.appendChild(child);
}
fireEvent(select, 'onclick');
function fireEvent(node, eventName) {
if (document.all && !document.addEventListener) {
ele.fireEvent(eventName);
} else {
var e = document.createEvent("HTMLEvents");
e.initEvent(eventName.replace(/^on/i, ''), false, true);
ele.dispatchEvent(e);
}
}
IE和chrome没有反应,FF出错。
ele is not defined
[在此错误处中断]
ele.dispatchEvent(e);
LZ 不会是小白吧? 形参写的是node下面用的ele当然报错了, 我只是随便敲了点代码, 没太注意。var select = document.getElementById('test11');
fireEvent(select, 'onclick');
function fireEvent(ele, eventName) {
if (document.all && !document.addEventListener) {
ele.fireEvent(eventName);
} else {
var e = document.createEvent("HTMLEvents");
e.initEvent(eventName.replace(/^on/i, ''), false, true);
ele.dispatchEvent(e);
}
}
http://topic.csdn.net/u/20120209/10/47c9deea-efbe-48f3-9de0-18386144abaa.html
目前是可以搜索到某个选项,但没有展开select下拉列表,用户体验不好。如果能够在搜索的时候,直接展开定位到那个选项,这样就一目了然了。