yang52081 2008-07-31 14:27
浏览 132
已采纳

使用Javascript 怎样对表格加快捷键,有实例最好

我的表格格式是这样的不能改动:























6908741329326 ewfdsfsdf dfsdfsdf dfsdfsd
6908741329326 dsdfsfsdf sdfsdfsfs dfsdfsd



以上是表格的样子,只有文本框中的内容可以改动,其他的值不能改动,文本框name="aaa",id是动态获取的值,id="dddd"和id="ccc"的文本框是固定的值,name="remark"文本框是可改动的。我的意思是这样的,当第一行获取光标后就把光标定位到name="aaa"的文本框,然而按"=>"光标,进入id="ddd"的文本框,再按下光标进入id="ccc"的文本框,按左光标进入name="aaa"的文本框编辑文本框.最好有实例...........谢谢。
[b]问题补充:[/b]
在模块中是用来输入订单数据,方面用户使用,只有文本框的数据可以修改,其他数据是从数据库查询出来的不能改动的
[b]问题补充:[/b]
用户有比较多的订单,在很短的时间内输入,用户要求用光标速度比较快,不会用table键,我开始的想法也是用Table键,用户要求不行.希望可以用光标实例...........
[b]问题补充:[/b]
大家过来帮帮忙。。。本人非常感谢!
[b]问题补充:[/b]
实现不了,原因是文本框的name值是数组,id是动态的,不能搞定
[b]问题补充:[/b]
var curRow=order.parentNode.rowIndex;//得到当前行索引

var curCol=order.parentNode.parentNode.//得到当前列索引

我试了一下上面二行有问题.
[b]问题补充:[/b]
是用order.TR.rowIndex 这个吗好像不对。
[b]问题补充:[/b]
function keyDown(){
var iekey=event.keyCode;
var realkey=String.fromCharCode(event.keyCode);
//按"Insert"键表格获取光标事件
var grid=document.getElementById("protable");
var order=event.target||event.srcElement; //得到当前的文本框
if(iekey==38){
var curRow = order.parentNode.parentNode.rowIndex;//行索引
var curCol = order.parentNode.cellIndex;//列索引
alert(curRow+","+curCol);
if(grid.childNodes[0].childNodes[curRow-1]!=null){

grid.childNodes[0].childNodes[curRow-1].childNodes[curCol].childNodes[0].select();//选中上一行的文本框.
}
}else if(iekey==40){
var curCol = order.parentNode.parentNode.rowIndex;//行索引
var curRow = order.parentNode.cellIndex;//列索引

alert(curRow + "," + curCol);
if(grid.childNodes[0].childNodes[curRow-1]!=null){

grid.childNodes[0].childNodes[curRow].childNodes[curCol-1].childNodes[0].select();//选中下一列的文本框.
}

}
}
document.onkeydown = keyDown;
文本框总是不能获取光标。。。。。。。。。。。
  • 写回答

8条回答 默认 最新

  • iteye_17163 2008-08-01 18:10
    关注

    再不行的话我要崩溃了...
    [code="js"]<br> function keyDown(){<br> var iekey=event.keyCode;<br> var realkey=String.fromCharCode(event.keyCode);<br> //按&quot;Insert&quot;键表格获取光标事件<br> var grid=document.getElementById(&quot;myGrid&quot;);<br> var order=event.target||event.srcElement; //得到当前的文本框<br> if(order.tagName==&quot;INPUT&quot;){<br> var curRow = order.parentNode.parentNode.rowIndex;//行索引<br> var curCol = order.parentNode.cellIndex;//列索引<br> var rowCount=grid.childNodes[0].childNodes.length-1;<br> var colCount=grid.childNodes[0].childNodes[0].childNodes.length-1;<br> if(iekey==38){<br> if(--curRow&gt;=0&amp;&amp;grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].tagName==&quot;INPUT&quot;){<br> grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].select();//选中上一行的文本框.<br> }<br> }else if(iekey==40){<br> if(++curRow&lt;=rowCount&amp;&amp;grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].tagName==&quot;INPUT&quot;){<br> grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].select();//选中下一行的文本框.<br> }<br> }else if(iekey==39){<br> if(++curCol&lt;=colCount&amp;&amp;grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].tagName==&quot;INPUT&quot;){<br> grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].select();//选中下列的文本框.<br> }<br> }else if(iekey==37){<br> if(--curCol&gt;=0&amp;&amp;grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].tagName==&quot;INPUT&quot;){<br> grid.childNodes[0].childNodes[curRow].childNodes[curCol].childNodes[0].select();//选中前列的文本框.<br> }<br> }<br> }<br> }<br> document.onkeydown = keyDown;<br>













    测试用
    测试用 测试用 测试用
    [/code]
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机