根据查阅的文章来看,目前想实现单键代替组合键还不是件容易的事情。不过,解决方法不是没有,可以采用另一个比较传统的方法——利用控件的index——来解决这个问题。
<script>
function changeFocus()
{
if(event.keyCode==38)
try{document.all(event.srcElement.sourceIndex-1).focus();}catch(e){}
if(event.keyCode==40)
try{document.all(event.srcElement.sourceIndex+1).focus();}catch(e){}
}
</script>
<input onKeyDown="changeFocus()"/>
现在这样解决确实是一个不错的选择。“按Tab键改变焦点到相应index的控件上。”根据这个思想,用上面的方法是再合适不过的了。
但是还是觉得有点不舒服,至少没有解决获得组合键keyCode的问题!假如我今后想实现的不仅仅是改变焦点,而是想按一个键来替代N个键的组合怎么办?这个问题,还有必要进一步探讨。我看了网上很多讨论——关于这个方面的问题,大家都选择避开绕行的策略,还是没有真正找到解决单键替代组合键的方法。关键是没有一个官方的(或者是我没找到)关于keyCode值的标准。
等这个项目完结以后,在来深究这个问题吧。嘿嘿,一天没白干,解决了一个小小的需求。
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=241695