新手指南--查看文章
 
Ext实现页面表单Enter全键盘导航
发布时间:2008-7-20

在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);  //页面加载完成后添加表单导航
}



 [新手指南]Ext基础三:获取页面元素 (myext整理,04-12)
Ext.get与Ext.fly两者同是Ext中获取元素的静态方法,不同之处在于Ext.fly不会缓存任何的元素,元素的引用可能会被后来的元素冲掉;Ext.get方法执行时会为每个DOM元素建立一个新的Ext.Element对象,如果获取的是相同对象的话,则只是从缓存中提取。Ext.fly方法则显得更……

 [新手指南]Ext2.0 + cjson 快乐起舞 (佚名,03-06)
虽然说我买了很多CSS的书扔在家里,也翻过来看过。可你知道程序员没几个静得下来专门搞CSS,我是这批人中的其中之一。我希望的事就是有个很好的美工可以帮我做一些好的样式,我拿来就用。 平时做Web应用,好多的页面,每一个请求的处理器最终还对应回一个页面,这是大部分Web Framew……

 [新手指南]使用树控件TreePanel (佚名,03-06)
转载: http://www.easyjf.com/在应用程序中,我们经常会涉及到要显示或处理树状结构的对象信息,比如部门信息、地区信息,或者是树状的菜单信息,操作系统中的文件夹信息等。   对于传统的html页面来说,要自己实现显示树比较困难,需要写很多的jav……

 [新手指南]开始ExtJS之旅:3.ExtJS中的基本概念 (myext整理,06-07)
3  ExtJS中的基本概念    在第1章中提到过,ExtJS和传统的Web 开发大不相同。特别是在界面开发上,不用再纠缠在Html和CSS中,而与Java Swing或者Delphi的开发方式非常相同。这样在ExtJS的开发中会有一些在传统 Web 开发中……

 [新手指南]ext 之我见 (佚名,03-06)
最近的这段时间,感觉Ext挺火的。接触Ext还是半年前的事情了,那时候就想对Ext进行封装,做一个服务端的Ajax框架出来。可由于身体的原因,还是搁浅了。     使用Ext是从1.1开始的,那时候觉得Ext,几乎已经简化了所有的客户端脚本。就算不会j……

 


©2008 MyExt.cn
本站文章来自互联网,仅供学习和研究使用,如有版权问题,请发送Email:myext@126.com.