分享

博客园 - dudu-快乐程序员 - 如何实现文本框焦点自动跳转及通过回车键提交表单

 加菲 2006-03-28

如何实现文本框焦点自动跳转及通过回车键提交表单

该文章讲的是在ASP.NET登录页面中如何实现文本框焦点自动跳转及通过回车键提交表单。
所需的Javascript代码:

<script language="JavaScript">

NS4 = (document.layers) ? true : false;

function checkEnter(event,element)

{    

    var code = 0;

    if (NS4)

        code = event.which;

    else

        code = event.keyCode;

    if (code==13)

     {

         if(element.name==‘tbUserName‘)//tbUserName-用户名文本框的Name

         {

              document.frmLogin.tbPassword.focus();//frmLogin-表单名称,tbPassword-密码文本杠框的Name

         }

         if(element.name==‘tbPassword‘)

         {

              //document.frmLogin.submit();用这种方式提交,Asp.net页面会闪一下,但实际并未提交

              //用下面的代码才能提交,我是从asp.net生成的页面中查看源文件然后复制出来的

              if (typeof(Page_ClientValidate) != ‘function‘ ||  Page_ClientValidate()) __doPostBack(‘lblLogin‘,‘‘);

         }

     }

}

 

</script>

我将这些代码放在了一个LoginScript.js文件中,然后在Login.cs文件中添加如下代码就实现这样的功能:

tbUserName.Attributes.Add("onKeyPress","checkEnter(event,this)");

tbPassword.Attributes.Add("onKeyPress","checkEnter(event,this)");

System.IO.StreamReader sr=new System.IO.StreamReader(MapPath("Script")+"\\LoginScript.js");

this.RegisterClientScriptBlock("LoginScript",sr.ReadToEnd());

sr.Close();

posted on 2004-05-26 14:52 dudu 阅读(10176) 评论(14)  编辑 收藏 收藏至365Key 所属分类: ASP.NET

评论

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-05-26 15:11 吹雪

我建议这样写:
if(event.keyCode==13)
{
event.keyCode = 9 ;
}


当点击回车的时候去执行 Tab键,这样效果更好 :)  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-05-26 15:34 aierong

<script language="vbscript">
<!--
Sub document_onkeydown
if window.event.keyCode=13 then
window.event.keyCode=9
end if
End Sub
//-->
</script>


把上面代码放入HTML代码中,控件自动扑获回车,自动把焦点转移到下一个控件
这样就可以按照事先设置好的TabIndex属性转移焦点

  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-05-26 17:36 Koffer

#region 控件获得焦点
/// <summary>
/// 通过 注册并运行脚本 使某个脚本可操作的控件获得焦点。
/// </summary>
/// <param name="strTextBoxOrButtonId"></param>
private void TextBoxOrButton_GotFocus( string strTextBoxOrButtonId )
{
string script = "<script>document.all[\"" + strTextBoxOrButtonId + "\"].focus();</script>" ;
this.RegisterStartupScript( "GotFocus" ,script );
}
#endregion  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-05-26 17:38 koffer

this.txtSDUTY.Attributes["onkeydown"]="if (event.keyCode==13) {document.all.btnSDUTY.click();return false;}";

#region 如果用户用回车去做的验证
private void btnSDUTY_Click(object sender, System.EventArgs e)
{
TextBoxOrButton_GotFocus(this.txtSLORG.ID);
}
}  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-06-09 09:29 ak47

你这些带颜色的关键字是如何弄上去的?
是用一个国外网址转化的吗?  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-06-09 09:38 dudu

将代码从VS.NET中复制到Word, 再从Word复制过来, 就变成这样了。  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-06-18 17:15 狮子洋

<script language="javascript"> 
<!-- 
function init()
{
document.onkeydown=keyDown 
}

function keyDown(e) { 

if(event.keyCode==13)
{
event.keyCode=9
}


<body  onload="init()">



}
//-->

</script>
这是javascript版的.  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-07-08 10:38 过客

你好  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-10-25 12:39 奚彧

焦点是转移了,很多代码都只是转移焦点,但是却不提交表单  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2004-12-26 10:34 lake2

有启发,谢谢各位  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2005-01-24 10:16 听棠.NET

看我发表的 "解决WEB页面上"焦点控制"一法" http://www.cnblogs.com/tintown/archive/2005/01/06/87355.html 比这个经典多了!!!  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2005-03-28 09:30 killren

复制粘贴消化  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2005-07-02 10:18 ascn

我想做这样的文本框,不知道怎么实现。

文本框的最长字符为10,当输入到10字符后,自动跳转到下一个文本框,请问怎么实现?

烦请帮忙 ascn@  回复   

# re: 如何实现文本框焦点自动跳转及通过回车键提交表单 2005-07-28 10:32 阿新

<SCRIPT language="javascript">
function keyvalue()
{
if(event.keyCode=="13")
{

if(!(event.srcElement.name=="btnSave"|| event.srcElement.name=="btnReturn") )
{
event.keyCode="9";
}
}
// key=window.event.keyCode;
// alert(key);
// if(key==13)//判断是否按下回车键
// {
// event.keyCode=9;
//CurTabIndex=event.srcElement.tabIndex+1//将当前tabindex的值加1
//for (n=0;n< Form1.elements.length;n++)
//{
// if (Form1.elements[n].tabIndex==CurTabIndex) //找到下一个表单元素
// {
// Form1.elements[n].focus(); //移动焦点
// return true;
// }
// }

// }
}


</script>

我是这样写的,加了判断遇到按钮就不跳了
但代码一定要放在form里面

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多