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 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页