想要实现的功能是:一个简单的注册页面,表单内容包括用户名,密码,确认密码,如果填入信息符合条件则页面跳转,否则显示提示信息,页面不跳转。
可是即使填入信息不符合条件,页面仍然跳转。而且,如果将鼠标在用户名框里点一下,不输入内容,之后在在密码框点一下,就死机了,这是为什么?
想要实现的功能是:一个简单的注册页面,表单内容包括用户名,密码,确认密码,如果填入信息符合条件则页面跳转,否则显示提示信息,页面不跳转。
可是即使填入信息不符合条件,页面仍然跳转。而且,如果将鼠标在用户名框里点一下,不输入内容,之后在在密码框点一下,就死机了,这是为什么?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>简单注册界面</title>
<script type="text/javascript" >
  function Mname(){   
if(document.form.name.value.length==0){
document.getElementById('s1').innerHTML='用户名不能为空';   
document.form.name.focus();
return false;
}else{
document.getElementById('s1').innerHTML='*';   
return true;
}}
function Mpwd1(){   
if(document.form.pwd1.value.length==0){
document.getElementById('s2').innerHTML='密码不能为空';   
document.form.pwd1.focus();
return false;
}else{
document.getElementById('s2').innerHTML='*';   
return true;
}}
function Mpwd2(){   
if(document.form.pwd2.value!=document.form.pwd1.value){
document.getElementById('s3').innerHTML='两次输入密码必须相同';   
document.form.pwd2.focus();
return false;
}else{
document.getElementById('s3').innerHTML='*';   
return true;
}}
function checkForm(){
var c1= Mname();
var c2= Mpwd1();
var c3= Mpwd2();
if(c1==true && c2==true && c3==true){
return true;
}
else{
return false;
}
}
</script>
</head>
<body bgcolor="ddffdd">
<div >
<div id="header" align="center">
<h1 >
欢迎新会员
</h1>
<hr>
</div><div align="center">
<h2>
会员注册
</h2>
<form name="form" method="post" action="UserLogin" onsubmit=" checkForm()" >
<table >
<tr align="left">
<td >用户名:</td>
<td ><input type="text" name="name" onblur="Mname();">
<span id="s1" style="color:red">*</span>
</td>
</tr>
<tr align="left">
<td>密码</td>
<td><input type="password" name="pwd1" onblur="Mpwd1();">
<span id="s2" style="color:red">*</span>
</td></tr>
tr align="left">
<td>确认密码�?/td>
<td><input type="password" name="pwd2" onblur="Mpwd2();">
<span id="s2" style="color:red">*</span>
</td></tr><tr align="left">
<td><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>

解决方案 »

  1.   

    在Form onsumbit 用 "return checkForm()" 取元素不要这么取,最好用 getElementById 或者 getElementsByName
      

  2.   

    <form name="form" method="post" action="UserLogin" onsubmit="return checkForm()" >
    你的表单form和form的name是同名的可能冲突,还有name
      

  3.   

    1.修改form和name的名称,如:form1,username。
    2.onsubmit=" checkForm()" 改为onsubmit="return checkForm()" 
      

  4.   

    多个onblur冲突,死循环了。在表单提交时验证一次就可以了。