<!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=gb2312" />
<title>第二章:javascript表单验证</title>
<script language="javascript">
<!--
  //是否为数字验证函数
  function isnumber(oNum){
   //oNum 变量不存在时,返回false
   if(!oNum){
   return false;}
     var strp=/^\d+(\.\d+)?$/;
  //不符合验证标准时,返回false
  if(!strp.test(oNum)){
  return false;}
   //使用try....catch语句来进行错误处理
   try{
    if(parsefloat(oNum)!=oNum){
return false;
}
}catch(ex)
{
return false;
}
return ture;
}
//验证表单
function cheform(){
//验证姓名
var myname=document.myform.myname.value;
if(myname==""){
alert("姓名不允许空值!");
return false;}
  //验证年龄
  var myage=document.myform.myage.value;
  if(!isNumber(myage)){
  alert("年龄必须是阿拉伯数字");
  return false;}
   //验证密码
   var mypassword=document.myform.mypassword.value;
   var mypassword1=document.myform.mypassword1.value;
   if(mypassword.length !=6){
   alert("密码必须是6位!");
   return false;}
   if(mypassword !=myassword){
   alert("两次输入密码必须一致!");
   return false;}
   }
   //-->
   </script>
</head><body>
 <form name="myform" onsubmit="return cheform()">
  请输入姓名:<input name="myname" type="text" >(不允许空值)<br />
  请输入年领龄:<input name="myage" type="text" >(必须是阿拉伯数字)<br />
  请输入密码:<input name="mypassword" type="password" >(必须是6位)<br />
  填重复密码:<input name="mypassword1" type="password" >(和上面必须一致)<br />
  备注说明:<textarea name="myre" ></textarea><br />
  <input name="sub" type="submit" value="提交">
  </form>
</body>
</html>
javascript

解决方案 »

  1.   

    if(!isNumber(myage))
    和你定义的
     function isnumber(oNum)大小写不同。js严格区分大小写
      

  2.   

    改了这里,还是只能运行到年龄这里,而且,我输入的年龄是数字,可是他还是弹出(年龄必须是阿拉伯数字),就像他根本识别不了这句 :
    if(!isNumber(myage)){
      alert("年龄必须是阿拉伯数字");
      return false;}[/color]
      

  3.   

    改了这里,还是只能运行到年龄这里,而且,我输入的年龄是数字,可是他还是弹出(年龄必须是阿拉伯数字),就像他根本识别不了这句 :
    if(!isNumber(myage)){
      alert("年龄必须是阿拉伯数字");
      return false;}刚才多了一个[/color] ,你能不能帮我看一下,然后该来全部都能执行啊 我已经检查了好几遍了,还是没能检查出来错误,谢谢!!
      

  4.   

    <!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=utf-8" />
    <title>第二章:javascript表单验证</title>
    <script type="text/javascript">
    function de(e){
    var a=e||window.event;
    if(a.preventDefault){
    a.preventDefault();
    }else{
    a.returnValue=false;
    }
    }
    window.onload=function(){
    document.forms[0].onsubmit=cheform;
    }
    function cheform(e){
    var myname=document.myform.myname.value;
    if(myname==""){
    alert("姓名不允许空值!");
    de(e);
    }
       var myage=document.myform.myage.value;
    var reg=/^\d+$/;
       if(!reg.test(myage)){
       alert("年龄必须是阿拉伯数字");
       de(e);
    }
        var mypassword=document.myform.mypassword.value;
        var mypassword1=document.myform.mypassword1.value;
    alert(mypassword+"||"+mypassword1);
    if(mypassword!=mypassword1){
        alert("两次输入密码必须一致!");
        de(e);
    }
        if(mypassword.length !=6){
        alert("密码必须是6位!");
        de(e);
    }
       
    }
    </script>
    </head><body>
     <form name="myform">
      请输入姓名:<input name="myname" type="text" >(不允许空值)<br />
      请输入年领龄:<input name="myage" type="text" >(必须是阿拉伯数字)<br />
      请输入密码:<input name="mypassword" type="password" >(必须是6位)<br />
      填重复密码:<input name="mypassword1" type="password" >(和上面必须一致)<br />
      备注说明:<textarea name="myre" ></textarea><br />
      <input name="sub" type="submit" value="提交">
      </form>
    </body>
    </html>
      

  5.   

    我是一个js自学者,上面的有几处看不懂,你能不能在原文上改一下,试试看能不能改来可以运行,
    或者是你帮我讲讲你上面调用代码的大体思路和这句代码的意思
    var a=e||window.event;
    if(a.preventDefault){
    a.preventDefault();
    }else{
    a.returnValue=false;
    }
    谢谢!!!!我能不能加你的qq哦!我的是873109031