先看图片或许参看问题:
http://www.suncl.net/post/102.html
我用jquery只实现了文本框的移动(暂时上下移动等同于左右移动)js代码:<script language="JavaScript" type="text/javascript" src="../javascripts/jquery-1.4.2.js"></script>
<script language="JavaScript" type="text/javascript">
$(function(){
var cols=1;
var obj = $("input");
var num = $("input").length;
$("input").bind("keydown",function(event){var key = event.keyCode;
   var n = obj.index(this);
   switch(key)
   {
    case 37://左
      if(n > 0)
     {
      $("input:eq("+(n-1)+")").focus();//F4FAF0
    $("input").css("background-color","#ffffff");
       $("input:eq("+(n-1)+")").css("background-color","#F4FAF0");
     }
     break;
    case 38://上
     if(n >= cols)
     {
    $("input:eq("+(n-cols)+")").focus();
    $("input").css("background-color","#ffffff");
       $("input:eq("+(n-cols)+")").css("background-color","#F4FAF0");
     }
     break;
    case 39://右
     if(n < num-1)
     {
       $("input:eq("+(n+1)+")").focus();
    $("input").css("background-color","#ffffff");
       $("input:eq("+(n+1)+")").css("background-color","#F4FAF0");
     }
     break;
    case 40://下
     if((n+cols) < num)
     {
       $("input:eq("+(n+cols)+")").focus();
        $("input").css("background-color","#ffffff");
       $("input:eq("+(n+cols)+")").css("background-color","#F4FAF0");
     }
     break;
    default: return true;
   }
});
});
</script>那位朋友能使上下左右也能控制下拉框的焦点。

解决方案 »

  1.   

    jquery selector 选中所有的下拉框和文本框没问题
    $("form input:text,select")
    可是,在设置焦点的时候不知如何设置
    $("form input:text,select:eq(3)) is right? 
    这样写对吗?
      

  2.   

    没人帮我吗?
    就这个问题
    $(function(){
    var cols=3;
    var obj = $("input");
    var num = $("input").length;
    $("input").bind("keydown",function(event){var key = event.keyCode;
       var n = obj.index(this);
       switch(key)
       {
        case 37://左
         if(n > 0)
         {
          obj. get_r(n-1).focus();
         }
         break;
        case 38://上
         if(n >= cols)
         {
          obj. get_r(n-cols).focus();
         }
         break;
        case 39://右
         if(n < num-1)
         {
          obj. get_r(n+1).focus();
         }
         break;
        case 40://下
         if((n+cols) < num)
         {
          obj. get_r(n+cols).focus();
         }
         break;
        default: return false;
       }
    });
    });
    </script>
    get_r方法是哪里的?
      

  3.   

    get_r  是自己写的一个函数(function)$("form input:text,select:eq(3))这样的写法是有问题的换成$("form input:text,select:nth-child(3)) 试试