日期:2014-05-16  浏览次数:20341 次

【高难?】keyCode的操作。
前提,不要使用插件new   ActiveXObject( "Wscript.Shell ")。

如何实现,
按下Enter键後,实现的效果是按下Alt+↓的组合?
--------------------------------------------------
问题来源:

<select> 希望在得到焦点的时候,自动展开。

------解决方案--------------------
好象不行,如果是两个键变一个键是可以的
------解决方案--------------------
1.首先将焦点给Select
2.然后模拟按键Alt+↓。模拟按键是使用ActiveX控件来完成的。
代码如下:

<Object type= "application/x-oleobject " id=Shell
classid= "clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B "> </Object>

<SELECT id=cboSort >
<OPTION value=None selected> None </OPTION>
<OPTION value=1> 1 </OPTION>
<OPTION value=2> 2 </OPTION>
<OPTION value=3> 3 </OPTION>
<OPTION value=4> 4 </OPTION>
</SELECT>
<button onclick= "demo(); "> 展开 </button>

unction demo(){
cboSort.focus();
var WshShell = new ActiveXObject( "Wscript.Shell ");
try{
WshShell.SendKeys( "%{DOWN} ");
}
catch(e){}
WshShell.Quit;
}

</script>


------解决方案--------------------
昨晚俺和斑竹已经在另一贴中讨论过类似问题了!

详见 JAVASCRIPT控制下拉列表的全部显示

http://community.csdn.net/Expert/topic/5541/5541452.xml?temp=.4395716

代码如下,L@_@K

<body>
<table border= "1 ">
<tr>
<td valign= "top "> BigCity </td>
<td>
<select id= "selBigCity " style= "position: absolute; top: 19px; ">
<option value= " "> </option>
<option value= "1 "> BEIJING </option>
<option value= "2 "> SHANGHAI </option>
<option value= "3 "> CHONGQING </option>
<option value= "4 "> TIANJIN </option>
</select>
</td>
</tr>
<tr>
<td> 实现 </td>
<td> 按 Tab 键焦点移动至 Select 时,选项自动展开,按首字母可实现选择同时确认,上下方向键移动,空格或回车键确认! </td>
</tr>
<tr>
<td> 问题 </td>
<td> style= "position: absolute; top: 18px; " 还是不爽,因为俺不喜欢 absolute。 </td>
</tr>
</table>
<script type= "text/javascript ">
<!--
var oBigCity = document.getElementById( "selBigCity ");

oBigCity.onfocus = function ()
{
this.size = this.options.length;
};
oBigCity.onclick = function ()
{
this.blur();
this.size = 1;
};
oBigCity.onkeypress = function ()
{
this.blur();
this.size = 1;
};
//-->
</script>
</body>


------解决方案--------------------

<body>
<table border= "1 ">
<tr>
<td valign= "top "> BigCity </td>
<td>
<select id= "selBigCity ">
<option value= " "> </option>
<option value= "1 "> BEIJING </option>