页面上有textbox1,textbox2,textbox3,textbox4,textbox5 ......... 多个textbox控件javascript代码实现回车跳格:if (event.keyCode == 13) {
   event.keyCode = 9;
}现在是按一次回车,焦点从textbox1,textbox2,跳一个格。如何实现按一次回车,跳两个格,比如:从textbox1直接跳textbox3 ?

解决方案 »

  1.   

    document.getElementById("textbox3").focus();//给textbox3设置焦点其中的 3 可以通过textbox1的id取子串得到1后加上2获得,这样就有规律了。
      

  2.   


    通过getElementById是可以得到的,这知道的。不用getElementById有实现方法吗?
    因为现在的情况是textbox有很多个,对象有不确定性
    所以,用 event.keyCode = 9 实现的
      

  3.   

    http://topic.csdn.net/u/20080831/16/1b043193-711e-4bdb-b31b-8edb6ce3aa65.html
    获取焦点所在textbox,应该就能做了。
      

  4.   


    获取可以的,获取后,怎样让焦点直接跳到下一个?
    我这里函数写过了,但没法跳到下一个。        function getfocus() {
                if (event.srcElement.getAttribute("ReadOnly") == true) {
                    event.keyCode == 13;
                    //alert('d');
                }
            }这段代码的意思就是判断textbox的属性,如果只读,就跳到下一个textbox
      

  5.   

    看我贴给你的那个链接啊,获取到焦点原先所在的textbox后,取出id,在这基础上修改一下,得到下一个textbox的id,然后focus()。
      

  6.   

    链接看了,下一个有不确定性啊,怎么focus呢?
    实质的情况是这样的
    页面上有100个textbox,用回车已经实现了跳格,现在是在跳格的时候,碰到只读的textbox后,怎么跳过这个只读的textbox,直接到下一个textbox?
      

  7.   

    比如当前焦点所在的是textbox1,获取它后得到下一个是textbox2(拼id),先判断一下是否只读,如不是只读,focus(),然后break出循环就行了;如是只读,在textbox2的基础上拼id得到textbox3,再继续判断……。
    while(true)
    {
       //判断
    }
      

  8.   

    现在textbox有不确定性,id也不是顺序关系
      

  9.   

    真正聪明的程序员设计框架,以后再有改动时只要去修改声明部分就行了;小聪明的程序只看眼前,以后再有改动时要再去混乱地重写源代码。其实顺序关系很简单,你可以创建一个数组,里边的值记录了各个控件,例如 txt1、txt3、txt5、....、txt2、txt4....等,这就行了。当你需要修改回车键跳转控制次序,修改一下这个数组的值就行了。
      

  10.   


    你的意思我明白,现在的想法是找到一个通用的方法,在一个页面上不需要考虑id,也不必用getElementById函数。
    现在需要只要碰到只读的就跳过,不需要考虑更多。
    不管大小聪明,感觉你也没有跳过getElementById函数,没做到通用,觉得你属于小聪明,或者不聪明!
      

  11.   

    用getElementByTagName方法,得到一个数组,获取某父元素下所有的input,根据type属性和只读属性过滤掉只读的和非textbox的元素,剩下就是非只读的textbox了。然后for循环,先找到焦点所在的那个textbox,根据数组下标不难取到需要focus的那个textbox。这个方法跟id无关,应该比较通用。
      

  12.   

    dalmeeme ,虽然你的方法还没摆脱需要设定信息(比如数组),就不能移植通用,但比sp1234的思路要好上很多!这个问题我元素索引的方法得到了解决。
    这是核心代码:            if (event.srcElement.getAttribute("ReadOnly") == true) {
                    var k = currentindex(current, obj);
                    obj(k + 1).focus();
                }
      

  13.   

    dalmeeme,多谢你的热心,结贴了