按回车键光标自动移到下一个文本框

xiaozhihongxzh 2009-08-26 06:28:35
在Gridview中有一列模板列,里面放的是TextBox,TextBox绑定了数据库中一个相应的字段
请问怎么实现在按回车键的时候,光标自动由上一个TextBox移动到下一个TextBox
...全文
693 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
假设只是移动到同一列的下一个TextBox这种需求,怎么设计呢?其实很简单!假设模板列中的TextBox的ID是txt,可以在GridView控件的事件中处理:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
var thisTextbox = e.Row.FindControl("txt") as TextBox;
if (thisTextbox != null)
{
if (_lastRow != null)
{
((TextBox)_lastRow.FindControl("txt")).Attributes["onkeydown"] = "if(event.keyCode==13){document.getElementById('" +
thisTextbox.ClientID + "').focus();return false;};";
}
_lastRow = e.Row;
}
}

private GridViewRow _lastRow = null;


只要设计并用好出 _lastRow 就可以了。
  • 打赏
  • 举报
回复
什么叫做“光标自动由上一个TextBox移动到下一个TextBox”呢?是必须是同一列中的下一个TextBox,还是假设同一行中右边还有另外一个TextBox就可以获得焦点?

但是不论如何,写“event.keyCode=9”都是糊弄这个需求的,因为它只是让焦点转移到下一个具有输入焦点的html对象,而并不保证移到楼主要求的TextBox上。
  • 打赏
  • 举报
回复
event.keyCode=9 能够回答这个问题吗?假设TextBox右边有一个CheckBox,这不就将焦点转移到完全错误的地方了吗?

楼主的表述不严格,制造了这种混乱的回答。
chen_ya_ping 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xiaozhihongxzh 的回复:]
引用 7 楼 chen_ya_ping 的回复:
举个例子:
<input id="text1" type="text" onkeypress="Do()" />
<input id="text2" type="text" />


<script>
  function Do()
{
  if(event.keyCode==13)
{
    document.getElementById("text2").focus();
}
}
</script>


可我的TextBox是放在GridView中的
[/Quote]
看看页面的源代码文件,你就知道怎么写了
mbh0210 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yidichaxiang 的回复:]
按回车键的时候,光标自动由上一个控件移动到下一个控件

function keyDown()
{
    var keycode=event.keyCode;
    var keyChar=String.fromCharCode(keycode);
    if(keycode==13)
    event.keyCode=9;
}
document.onkeydown=keyDown


[/Quote]


试试这个
xiaozhihongxzh 2009-08-30
  • 打赏
  • 举报
回复
非常感谢sp1234
谢谢各位了
slund 2009-08-30
  • 打赏
  • 举报
回复
楼上的都已给出方法。
Justin-Liu 2009-08-30
  • 打赏
  • 举报
回复
键盘监听就可以了
alan0128 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xiaozhihongxzh 的回复:]
引用 7 楼 chen_ya_ping 的回复:
举个例子:
<input id="text1" type="text" onkeypress="Do()" />
<input id="text2" type="text" />


<script>
  function Do()
{
  if(event.keyCode==13)
{
    document.getElementById("text2").focus();
}
}
</script>


可我的TextBox是放在GridView中的
[/Quote]
document.getElementById("text2").focus();
只要text2是textbox的ID就行
Lovely_baby 2009-08-26
  • 打赏
  • 举报
回复
if(event.keyCode==13)
{
document.getElementById("text2").focus();
}
用js得焦点
happy664618843 2009-08-26
  • 打赏
  • 举报
回复
if(event.srcElement.tagName!='sumit'&&event.srcElement.tagName!="texterea")
{
if(event.keyCode==13)
{
event.keyCode=9
}
}
libodevil 2009-08-26
  • 打赏
  • 举报
回复
六楼的 不错
xiaozhihongxzh 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chen_ya_ping 的回复:]
举个例子:
<input id="text1" type="text" onkeypress="Do()" />
<input id="text2" type="text" />


<script>
  function Do()
{
  if(event.keyCode==13)
{
    document.getElementById("text2").focus();
}
}
</script>

[/Quote]
可我的TextBox是放在GridView中的
chen_ya_ping 2009-08-26
  • 打赏
  • 举报
回复
举个例子:
<input id="text1" type="text" onkeypress="Do()" />
<input id="text2" type="text" />


<script>
function Do()
{
if(event.keyCode==13)
{
document.getElementById("text2").focus();
}
}
</script>
yidichaxiang 2009-08-26
  • 打赏
  • 举报
回复
按回车键的时候,光标自动由上一个控件移动到下一个控件

function keyDown()
{
var keycode=event.keyCode;
var keyChar=String.fromCharCode(keycode);
if(keycode==13)
event.keyCode=9;
}
document.onkeydown=keyDown

xiaozhihongxzh 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shankaipingo 的回复:]
if(eventKey==13)
{
txtbox=找到下一个文本框;
//可以利用gridview是table的优点.得到当前txt的tr父元素,再得到tr的兄弟tr,然后定位到txtbox
txtbox.focus();
}
[/Quote]
可以具体些么
本人js很烂
xiaozhihongxzh 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxd_860825 的回复:]
常理不是按Tab键吗。
[/Quote]
现在客户的需求是按回车键
shankaipingo 2009-08-26
  • 打赏
  • 举报
回复
if(eventKey==13)
{
txtbox=找到下一个文本框;
//可以利用gridview是table的优点.得到当前txt的tr父元素,再得到tr的兄弟tr,然后定位到txtbox
txtbox.focus();
}
wxd_860825 2009-08-26
  • 打赏
  • 举报
回复
常理不是按Tab键吗。
shankaipingo 2009-08-26
  • 打赏
  • 举报
回复
我写的伪代码,我对JS不熟悉
if(eventKey==13)
找到下一个文本框//可以利用gridview是table的优点.得到下一个tr,然后定位到txtbox然后txtbox.focus();

62,243

社区成员

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

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

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

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