浏览 2832 次
锁定老帖子 主题:Ext2中实现全页面键盘导航
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-31
/** * 表单全键盘导航功能 xFocus:可选参数,用于设定页面加载完成后默认获取焦点的表单项,支持索引号和id/dom类型参数传入。 */ var keyNav = function(xFocus) { var run = function() { //查找所有非隐藏的录入项,排除掉css的class等于"x-tbar-page-number"的项,就是Ext Grid的分页条中的一个输入框 //遇到类似特殊情况都可以这么排除 var all = Ext.DomQuery.select('input[type!=hidden][class!="x-tbar-page-number"]'); 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); // 页面加载完成后添加表单导航 } 具体使用就是在页面的js最后加上keyNav(Ext.getCmp("name")); //name可以是第一个输入项的名称 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |