如何在asp.net中实现用上下左右箭头键在textbox中的光标跳转?

li98350 2003-11-25 06:39:36
兄弟作一录入界面,里面有很多行textbox,每行5个,为录入方便(有的textbox可能这次不录入,数据为0),要求实现用上下左右箭头键在textbox中实现光标的快速跳转,即敲下箭头键光标就直接跳入下一行对应的textbox,其余上、左、右以此类推。

请问各位大哥如何实现?
...全文
305 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tzsimple 2004-01-10
  • 打赏
  • 举报
回复
up
neodotnet 2003-11-26
  • 打赏
  • 举报
回复
大哥的要求是实现客户端的操作,对于Web Form来说,只能用JavaScript或VBScript来实现,如果改成C#或VB.NET服务器端代码是不现实的,这相当于每按一下移动箭头键,服务器就要执行程序并重新生成一个新的页面来实现这个功能,这从效率和可行性来说,都是不可取的.

大哥如果不懂JavaScript也没关系,只要把<script></script>间的代码拷到需要的页在的<head></head>间即可.

注意,思归老大的代码有些限制,要求每行的<input type="text">或<asp:Textbox>的数目相同且等于 n
saucer 2003-11-25
  • 打赏
  • 举报
回复
try something like the following:

<form>
<input><input><input><b><input><BR>
<input><b><input><input><input><BR>
<input><input><b><input><input><BR>
<input><b><input><input><input><BR>
</form>
<script language=javascript>
var n = 4;
function document.onkeydown()
{
//alert(event.keyCode);

var e = event.srcElement;
var c = event.keyCode;
switch(c)
{
case 37: //left
moveCursor(e,-1);
break;

case 38: //up
moveCursor(e,-n);
break;

case 39: //right

moveCursor(e,1);
break;

case 40: //down
moveCursor(e,n);
break;

}
}

function moveCursor(e,n)
{
var i = e.sourceIndex;
var sign = n > 0? 1 : -1;
n = Math.abs(n);

i=i+sign*1;

while ( i >=0 && i < document.all.length)
{
e = document.all[i];
if (e.tagName == "INPUT" && e.type == "text")
{
n--;
if (n==0)
break;
}
i=i+sign*1;
}
if ( i >= 0 && i < document.all.length && n==0)
document.all[i].focus();

}
</script>
emeibat 2003-11-25
  • 打赏
  • 举报
回复
俺帮忙顶顶,这个问题俺也想知道答案

62,049

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧