一般按enter键,提交表单。此代码主要实现按enter键不提交表单,而是触发另外的事件。
CSS样式:
* { margin:0; padding:0; font-size:12px; } #main { 960px; height:600px; background:lightblue; margin:0 auto; padding-top:30px; padding-left:30px; } #content { background:#fff; 500px; height:500px; padding:30px 0 0 30px; } #content form p { height:30px; margin-top:20px; } #content form p span { color:red; padding:3px; } #content form p strong { display:inline-block; font-size:16px; text-align:right; font-weight:100; 100px; line-height:150%; } input.inp { 240px; height:35px; font-size:20px; border:1px solid #eee; } input.sub { 100px; height:30px; border:none; margin-left:37px; margin-top:10px; cursor:pointer; background:#666; font-size:16px; font-weight:bold; color:#fff; } input#but { 100px; height:30px; border:none; margin-left:105px; margin-top:10px; cursor:pointer; background:#666; font-size:16px; font-weight:bold; color:#fff; }
HTML和JS代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title>表单验证JS效果</title> <script type="text/javascript"> function check(){ var val=document.myform.email.value; //取得输入的邮箱值 if(val==""){ //输入邮箱为空 alert("请输入邮箱!"); return false; } else { //邮箱中有内容,进行正则匹配 var emailpreg="^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$"; //正则匹配表达式 var preg=new RegExp(emailpreg); if(val.match(preg)==null){ //匹配不成功 alert(val+"\n"+"输入的邮箱格式不正确!"); return false; } } var pwdval=document.myform.pwd.value; //取得密码输入框中的值 if(pwdval==""){ //密码框中为空 alert("输入密码"); return false; } if(pwdval.length>20){ //密码框中内容太长 alert("密码长度太长,密码长度必须少于20"); return false; } var nameval=document.myform.uname.value; //取得昵称框中的值 if(nameval==""){ //昵称框中为空 alert("输入昵称"); return false; } if(nameval.length>10){ //昵称框中内容太长 alert("昵称长度太长,昵称长度必须少于10"); return false; } } if(document.attachEvent){ document.attachEvent("onkeydown",function(e){ if(e.keyCode == 13) alert("a"); }); } else { document.addEventListener("keydown",function(e){ if(e.keyCode == 13) document.getElementById("but").click(); }); } </script> </head> <body> <div id="main"> <div id="content"> <form name="myform" action="" method="post" onkeydown="if(event.keyCode==13){return false;}"> <p><strong><span>*</span>我的邮箱</strong> <input class="inp" type="text" name="email" /> </p> <p><strong><span>*</span>创建密码</strong> <input class="inp" type="password" name="pwd"/> </p> <p><strong><span>*</span>昵称</strong> <input class="inp" type="text" name="uname" /> </p> <p> <input type="button" id="but" value="not agree" onclick="location.href='http://www.baidu.com'"/> <input class="sub" type="submit" value="sub" onclick="check();"/> </p> </form> </div> </div> </body> </html>
代码解析:
first:
<form name="myform" action="" method="post" onkeydown="if(event.keyCode==13){return false;}">
上面红色标记的代码是实现按enter键不提交表单。
second:
if(document.attachEvent){
document.attachEvent("onkeydown",function(e){
if(e.keyCode == 13)
alert("a");
});
}
else {
document.addEventListener("keydown",function(e){
if(e.keyCode == 13)
document.getElementById("but").click();
});
}
上面标记的代码是实现按enter键触发其他事件,也就是跳转。