那位大哥帮俺我看下什么js函数调用不了 ? 郁闷了好久搞了一早上了<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function match(){
//定义错误的字符串;
var errStr="";
//依次取出四个表单域的值
var username=trim(document.aaa.username.value);
var pass=trim(document.aaa.pass.value);
var age=trim(document.aaa.age.value);
var birth=trim(document.aaa.birth.value);

//username不等于空
if(username==""||username==null){
errStr+="您的用户名必须重新输入";
}else if(!/^\w{4,25}$/.test(username)){
errStr+="\n您的用户名必须是数字或者字母,且长度在4到25之间";
}
//判断密码不为空
if(pass==""||pass=null){
errStr+="\n您的密码必须输入";
}else if(!/^\w{4,25}$/.test(pass)){
errStr+="\n您的密码必须是数字或者字母,且长度在4到25之间";
}
//判断年龄必须输入
if(age==""||age==null){
errStr+="\n您的年龄必须输入";
}else if(!/^[0-1]?[0-9]?[0-9]$/.test(age)){
errStr+="\n您的年龄必须为整数,且是一个有效的年龄值";
}
//判断生日必须输入
if(birth==""||birth==null){
errStr+="\n您的生日必须输入";
}else if(!/^19\d\d\-[0-1]\d\-[0-3]\d$/.test(birth)
&&!/^20\d\d\-[0-1]\d\-[0-3]\d$/.test(birth)){
errStr+="\n您的生日格式不正确,格式:yyyy-MM-DD";
}

//如果错误字符串为空,表面客户端验证通过
if(errStr==""){
return true;
}else{
alert(errStr);
return false;
}

}
</script>
  </head>
  
  <body>
<form id="aaa" name="aaa" method="post" action="index.jsp">
  <table width="75%" border="0" align="center" cellspacing="1">
    <tr>
      <td width="50%" align="right">请输入用户的用户名:</td>
      <td width="50%"><input name="username" type="text" size="25" maxlength="25" /></td>
    </tr>
    <tr>
      <td align="right">请输入用户的密码:</td>
      <td><input name="pass" type="text" size="25" maxlength="25" /></td>
    </tr>
    <tr>
      <td align="right">请输入用户的年龄:</td>
      <td><input name="age" type="text" size="25" maxlength="25" /></td>
    </tr>
    <tr>
      <td align="right">请输入用户的生日:</td>
      <td><input name="birth" type="text" size="25" maxlength="25" /></td>
    </tr>
<tr>
<td align="right"><input type="submit" name="Submit" onClick="return match();" value="提交" />&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;<input type="reset" name="Submit2" value="重置" /></td>
</tr>
  </table>
</form>
  </body>
</html>

解决方案 »

  1.   

    改成下面这样:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <base href="<%=basePath%>">
        
      <title>My JSP 'login.jsp' starting page</title>
        
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script type="text/javascript">
    String.prototype.trim = function() 

    return this.replace(/(^\s*)|(\s*$)/g, ""); 
    } function match(){
    //定义错误的字符串;var errStr="";
    //依次取出四个表单域的值var username=document.aaa.username.value.trim();
    var pass=document.aaa.pass.value.trim();
    var age=document.aaa.age.value.trim();
    var birth=document.aaa.birth.value.trim();//username不等于空
    if(username==""||username==null){
    errStr+="您的用户名必须重新输入";
    }else if(!/^\w{4,25}$/.test(username)){
    errStr+="\n您的用户名必须是数字或者字母,且长度在4到25之间";
    }
    //判断密码不为空
    if(pass==""||pass==null){
    errStr+="\n您的密码必须输入";
    }else if(!/^\w{4,25}$/.test(pass)){
    errStr+="\n您的密码必须是数字或者字母,且长度在4到25之间";
    }
    //判断年龄必须输入
    if(age==""||age==null){
    errStr+="\n您的年龄必须输入";
    }else if(!/^[0-1]?[0-9]?[0-9]$/.test(age)){
    errStr+="\n您的年龄必须为整数,且是一个有效的年龄值";
    }
    //判断生日必须输入
    if(birth==""||birth==null){
    errStr+="\n您的生日必须输入";
    }else if(!/^19\d\d\-[0-1]\d\-[0-3]\d$/.test(birth)
    &&!/^20\d\d\-[0-1]\d\-[0-3]\d$/.test(birth)){
    errStr+="\n您的生日格式不正确,格式:yyyy-MM-DD";
    }//如果错误字符串为空,表面客户端验证通过
    if(errStr==""){
    return true;
    }else{
    alert(errStr);
    return false;
    }}
    </script>
      </head>
       
      <body>
    <form id="aaa" name="aaa" method="post" action="index.jsp">
      <table width="75%" border="0" align="center" cellspacing="1">
      <tr>
      <td width="50%" align="right">请输入用户的用户名:</td>
      <td width="50%"><input name="username" type="text" size="25" maxlength="25" /></td>
      </tr>
      <tr>
      <td align="right">请输入用户的密码:</td>
      <td><input name="pass" type="text" size="25" maxlength="25" /></td>
      </tr>
      <tr>
      <td align="right">请输入用户的年龄:</td>
      <td><input name="age" type="text" size="25" maxlength="25" /></td>
      </tr>
      <tr>
      <td align="right">请输入用户的生日:</td>
      <td><input name="birth" type="text" size="25" maxlength="25" /></td>
      </tr>
    <tr>
    <td align="right"><input type="submit" name="Submit" onClick="return match();" value="提交" />&nbsp;&nbsp;</td>
    <td>&nbsp;&nbsp;<input type="reset" name="Submit2" value="重置" /></td>
    </tr>
      </table>
    </form>
      </body>
    </html>
      

  2.   

    javascript中没有trim函数,你得自己写一个,网上一搜便有下面这里应该是pass==null
    if(pass==""||pass=null){把提交按钮改成这样
    <input type="button" name="Submit" onClick="if(match()){document.aaa.submit();}" value="提交" />
      

  3.   

    String.prototype.trim = function() 

        return this.replace(/(^\s*)|(\s*$)/g, ""); 

    这是重点!