<html>
  <head>
    <title>增加学生</title>
<script type="text/javascript">
  function check(){
     if(window.document.form1.stuno.value.isNaN){
         window.document.form1.submit();
     }else{
         window.alter("学号不为数字!");
         }
  }
</script>  </head>
  
  <body>
   <h1 >欢迎新同学!</h1>
    <form name="form1"  method="post" action="">
       学号:<input type="text"  name="stuno" size="15"><br>
       密码:<input type="password" maxlength=6 name="password"><br>
       姓名:<input type="text" name="stuname"><br>
       性别:<input type="radio" name="male">女
             <input type="radio" name="female" checked>男<br>
       爱好:<input type="checkbox" name="love1" value="love1">羽毛球
             <input type="checkbox" name="love2" value="love2">篮球
             <input type="checkbox" name="love3" value="love3" checked>电影
       班级:<select name="stuclass">
             <option value="1">软件工程</option>
             <option value="2">网络工程</option>
             <option value="3">通讯工程</option>
           </select><br>
       备注:<textarea  name="extra" clos="60" rows="10"></textarea><br>
           <input type="button" name="button1" value="提交" onclick="check()">
    </form>
    <div>
      <span>请按上述要求注册</span>
    </div>
  </body>
</html>代码如上,奇怪的是为什么我输入错的学号点击提交没有显示“学号不为数字”????

解决方案 »

  1.   

    .isNaN 函数 你确定是这么用么?
      

  2.   

    <script type="text/javascript">
      function check(){
         if(window.document.form1.stuno.value.isNaN){
             window.document.form1.submit();
         }else{
             window.alter("学号不为数字!");
             }
      }
    </script>这些放在</body>这个标签的上面
      

  3.   

    <script type="text/javascript">
      function check(){
         if(isNaN(window.document.form1.stuno.value)){
             window.document.form1.submit();
         }else{
             window.alter("学号不为数字!");
             }
      }
    </script>改成这样
      

  4.   

    楼主isNaN函数不是这么用的.你的应该写成isNaN(document.form1.stuno.value)
      

  5.   

    最好把 传进来的值 进行trim 处理 再进行 数字检查
    还有我认为 isNaN 这个对数字验证不是很好
    个人建议用正则表达式来走判断比较好吧
      

  6.   

    其实 我更建议你 先看一下 js isNaN()的API,用不了2分钟就能看完,
    火狐浏览器 有 firebug  可以调试js代码,自己用用。 要不,我给你个 好用的代码?
      

  7.   


    function check(){
         var re = /^[0-9]+$/
         var stuno=document.document.getElementsByName("stuno");
         if(re.test(stuno)){
             window.document.form1.submit();
         }else{
             alter("学号不为数字!");
             }
      }
    其实  isNaN 函数不适合来判断,是否为纯数字的函数,用正则吧。
      

  8.   

    楼主有两个错误(js部分):
    1、是alert 不是alter
    2、isNaN的用法:isNaN(vvvv);
    if(isNaN(vvvv)){
        alert(vvvv不是数字);
    }else{
        alert(vvvv是数字);
    }
    因此楼主正确的js写法应该是:
    function check(){
         if(isNaN(window.document.form1.stuno.value)){
             window.alert("学号不为数字!");
         }else{
             window.document.form1.submit();
         }
      }
      

  9.   

    好吧  我都没看到 alert 打错了 = =!