投放本站广告请联系:
extjscn#126.com
Ext实现页面表单Enter全键盘导航
Ext实现页面表单Enter全键盘导航
在web软件中,很多时候我们希望提供用户一个键盘表单导航的功能,使用Enter代替tab实现表单的导航。
思路基本就是遍历页面的input字段,为每个表单项增加一个enter键的监听,如果出发了enter键则程序在触发tab键即可。
下面是在ext中实现的键盘导航的代码。
/** * 表单全键盘导航功能 * index:可选参数,用于设定页面加载完成后默认获取焦点的表单项,支持索引号和id/dom类型参数传入。 */ var keyNav = function(index){ var run=function(){ var all=Ext.DomQuery.select('input[type!=hidden]'); //查找所有非隐藏的录入向(ext中select都是用input模拟的所以这里不用找select) Ext.each(all,function(o,i,all){ //遍历并添加enter的监听 Ext.get(o).addKeyMap({ key : 13, fn : function() { try{all[i+1].focus()}catch(e){event.keyCode=9} if(all[i+1]&&/button|reset|submit/.test(all[i+1].type)) all[i+1].click(); //如果是按钮则触发click事件 return true; } }) }); document.body.focus(); //使页面获取焦点,否则下面设定默认焦点的功能有时不灵验 try{ var el; if(typeof eval(xFocus)=='object'){ //如果传入的是id或dom节点 el=Ext.getDom(xFocus).tagName=='input'?Ext.getDom(xFocus):Ext.get(xFocus).first('input',true); //找到input框 }else{ el=all[xFocus||0]; //通过索引号找 } el.focus(); }catch(e){} } Ext.isReady?run():Ext.onReady(run); //页面加载完成后添加表单导航 }
原文地址:http://www.cnitblog.com/yemoo/archive/2008/07/10/46533.html
- 要发表评论,请先登录