我在网上找了不少相关的资料,没有一个能直接拿来给我用的,经过一番琢磨还是弄明白了。我登陆界面有三个文本框:用户名(asp:TextBox id=txtUserName)、密码(asp:TextBox id=txtUserPassword)、验证码(asp:TextBox id=txtSN),两个按钮:登陆(asp:Button id=btnLogin)、重置(asp:Button id=btnReset)。我想实现的是:输入用户名后按Enter,光标移动到密码框,输入密码后按Enter,光标移动到验证码框,输入验证码后按Enter,提交表单。<!--我用的不是Input HTML的元素-->
下面说一下我的解决方案:
1.实现按Enter等同Tab的功能
<script language="javascript" for="document" event="onkeydown">
if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textarea' && event.srcElement.type!='')
event.keyCode=9; //Tab的键值为9 Enter的键值为13
</script>
2.最后一个文本框(验证码 txtSN)输入后 按Enter提交表单
<script language ="javascript">
function getEnter(){
if(event.keyCode == 13 && event.srcElement.type!='submit'){
event.returnValue=false;
//document.all("btnLogin").click(); 这个也行 测试过
document.getElementById('btnLogin').click();
}
}
</script>
在Page_Load里加上 this.txtSN.Attributes.Add("onKeyDown", "getEnter()");就OK!
以上两段JS代码网上遍地都是,但是任何一个都不能实现我的要求,组合起来就好使了,继续学习了...