当前位置: 代码迷 >> Java Web开发 >> 表单验证问题
  详细解决方案

表单验证问题

热度:472   发布时间:2008-11-04 14:18:03.0
表单验证问题
请问一下,以下的一个表单验证,用户名验证如果不通过,alert()提示信息后,在js里的return false;好像没起作用,还是会提交。
以下是页面代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
Object obj = session.getAttribute("storekeeper");
    if(obj != null){
        response.sendRedirect("netstoreReg.jsp");
    }
%>
<%@include file="include.jsp"%>
<html>

  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Welcome to Element</title>
    <style type="text/css">
<!--
#Layer99 {
    position:absolute;
    width:703px;
    height:32px;
    z-index:1;
    left: 330px;
    top: 130px;
}
#Layer98{
    position:absolute;
    width:200px;
    height:115px;
    z-index:2;
    left: 330px;
    top: 167px;
}
-->
    </style>
<script language="javascript">
function checkSkName(){
    if(document.regform.sk_name.value==""){
      window.alert("用户名不能为空!");
      document.regform.sk_name.focus();
      return false;
   }else{
           var skName=document.regform.sk_name.value;
           window.open("action/checkSkName.jsp?skName="+skName, "检测账号是否可用", "toolbar=0, location=0, menubars=0,width=300,height=200,scrollbars=0,status=no,directories=no,resizable=no");
   }
}
function check_dz()
{
   if(document.regform.sk_name.value=="")
   {
      window.alert("用户名不能为空!");
      document.regfrom.sk_name.focus();
      return false;
   }
   if(document.regform.sk_name.value.length < 6)
   {
      window.alert("用户名不能少于6位");
      document.regfrom.sk_name.focus();
      return false;
   }
   var filter = /^\s*[.A-Za-z0-9_-]{4,16}\s*$/;
   if (!filter.test(document.regform.sk_name.value))
   {
      window.alert("用户名填写不正确,请重新填写!可使用的字符为(A-Z a-z 0-9 _ - .)长度不小于5个字符,不超过15个字符,注意不要使用空格。");
      document.regform.sk_name.focus();
      document.regform.sk_name.select();
      return false;
   }
   if(document.regform.sk_password.value == "")
   {
      window.alert("密码不允许为空!");
      document.regform.sk_password.focus();
      return false;
   }
   if(document.regform.sk_password.value.length < 6)
   {
      window.alert("密码不能少于6位");
      document.regform.sk_password.focus();
      return false;
   }
   if(document.regform.sk_password1.value == "")
   {
      window.alert("确认密码不允许为空!");
      document.regform.sk_password1.focus();
      return false;
   }
   if(document.regform.sk_password.value != document.regform.sk_password1.value)
   {
      window.alert("两次的密码不一致");
      document.regform.sk_password.focus();
      return false;
   }
   if(document.regform.sk_email.value == "")
   {
      window.alert("邮箱不能为空!");
      document.regform.sk_email.focus();
      return false;
   }
   var re = new RegExp("^([A-Za-z0-9_|-]+[.]*[A-Za-z0-9_|-]+)+@[A-Za-z0-9|-]+([.][A-Za-z0-9|-]+)*[.][A-Za-z0-9]+$", "ig");
   if ( ! re.test(regform.sk_email.value))
   {
      window.alert("E-MAIL格式不正确!");
      regform.sk_email.focus();
      return false;
   }
   if(document.regform.sk_phone.value == "")
   {
      window.alert("联系电话不允许为空");
      document.regform.sk_phone.focus();
      return false;
   }
   if(document.regform.sk_adress.value == "")
   {
      window.alert("联系地址不允许为空!");
      document.regform.sk_adress.focus();
      return false;
   }
   if(document.regform.sk_IDCard.value == "")
   {
      window.alert("身份证号码不允许为空!");
      document.regform.sk_IDCard.focus();
      return false;
   }
   if(document.regform.sk_IDCard.value.length != 18)
   {
      window.alert("身份证号码不合法!");
      document.regform.sk_IDCard.focus();
      return false;
   }
   if(document.regform.sk_bankCardNum.value == "")
   {
      window.alert("银行账号不允许为空!");
      document.regform.sk_bankCardNum.focus();
      return false;
   }
   if(document.regform.sk_bankCardNum.value.length != 19)
   {
      window.alert("银行账号不合法!");
      document.regform.sk_bankCardNum.focus();
      return false;
   }
}
</script>

  </head>
  
<body>
  <div id="Layer99">
  <TABLE height=28 cellSpacing=3 cellPadding=0 width=776 align=center
     border=0>
    <TBODY>
        <TR vAlign=bottom>
            <TD>&nbsp;&nbsp;<A class=nav href="index.jsp">我的主页</A>
            <FONT class=nav> &gt; </FONT><A class=nav href="storeKeeper.jsp">我要开店</A>
            <FONT class=nav> &gt; </FONT><A class=nav>店主注册</A></TD>
        </TR>
    </TBODY>
</TABLE>
  </div>

  <div id="Layer98">
  <form name="regform" method="post" action="regskResult.jsp">
    <table width="499" border="1" bordercolor="#FFCCCC" align="center">
    <tr bgcolor="#FF9999">
        <td colspan="2" align="center">请先注册商家用户:</td>
      </tr>
      <tr bgcolor="#FF9999">
        <td colspan="2">店主注册信息(全部必填)</td>
      </tr>
      <tr>
        <td width="116">店主账号:</td>
        <td width="367"><input type="text" name="sk_name" /><input type="button" value="检测账号" onclick="return checkSkName()"/></td>
      </tr>
      <tr>
        <td>密码:</td>
        <td><input type="password" name="sk_password" /></td>
      </tr>
      <tr bgcolor="#FF99FF">
        <td>确认密码:</td>
        <td><input type="password" name="sk_password1" /></td>
      </tr>
      <tr>
        <td>E-mail</td>
        <td><input type="text" name="sk_email" /></td>
      </tr>
      <tr>
        <td>联系电话:</td>
        <td><input type="text" name="sk_phone" /></td>
      </tr>
      <tr>
        <td>联系地址:</td>
        <td><input type="text" name="sk_adress" /></td>
      </tr>
      <tr bgcolor="#FF99CC">
        <td>身份证号码:</td>
        <td><input type="text" name="sk_IDCard" /></td>
      </tr>
      <tr>
        <td>银行账号:</td>
        <td><input type="text" name="sk_bankCardNum" /></td>
      </tr>
      <tr>
        <td>
          <input type="submit" value="确认注册" onClick="return check_dz();" />
        </td>
        <td>
          <input type="reset" value="重填" />
        </td>
      </tr>
    </table>
    </form>
  </div>


</body>
</html>
搜索更多相关主题的帖子: 表单  验证  

----------------解决方案--------------------------------------------------------
<input type="submit" value="确认注册" onClick="return check_dz();" />
换成
   <input type="button" value="确认注册" onClick="return check_dz();" />
然后在
function check_dz()
{
   ......
   ......
   //最后 加上
   document.regform.submit();
}
----------------解决方案--------------------------------------------------------
谢谢,已经解决!
----------------解决方案--------------------------------------------------------
  相关解决方案