各位好,请教大家一个问题。
参照书上的练习,通过onsubmit调用没有起到效果,text中不输入值依然可以跳转。<html>
<head>
<title>3-8.html</title>
<style>.tbl{font-size:10pt;width:30%;text-align:right;background-color:#abcdef;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script type="text/javascript">
//用来检查用户输入是否为空的函数
function check_name()
{
     //判断表单login中,名为user_name的input元素的值是否为空
     if(login.user_name.value=="")
     {
         alert("请输入用户名!");
         return false;
     }
}
</script></head>
<body>
<!--注意,这里要添加onsubmit属性,通过它,当submit按钮被单击时,JavaScript函数check_name被调用-->
<form name="login" action="3-9.php" method="POST" onsubmit="return check_name()">
<table BORDER="0" WIDTH="200px" ALIGN="left">
   <tr>
       <td class="tbl">用户名:</td><td><input type="text" name="user_name"></td>
   </tr>
   <tr>
       <td><input type="submit" value="登入系统" ></td>
   </tr>
</table></form>
</body>
</html>
后来我百度一下,改成在input中使用onclick="check_name();调用,也是没效果,这是为什么呢?<html>
<head>
<title>3-8.html</title>
<style>.tbl{font-size:10pt;width:30%;text-align:right;background-color:#abcdef;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script type="text/javascript">
//用来检查用户输入是否为空的函数
function check_name()
{
     //判断表单login中,名为user_name的input元素的值是否为空
     if(login.user_name.value=="")
     {
         alert("请输入用户名!");
         return false;
     }
}
</script></head>
<body>
<!--注意,这里要添加onsubmit属性,通过它,当submit按钮被单击时,JavaScript函数check_name被调用-->
<form name="login" action="3-9.php" method="POST" onsubmit="return check_name()">
<table BORDER="0" WIDTH="200px" ALIGN="left">
   <tr>
       <td class="tbl">用户名:</td><td><input type="text" name="user_name"></td>
   </tr>
   <tr>
       <td><input type="submit" value="登入系统" onclick="check_name();"></td>
   </tr>
</table></form>
</body>
</html>

解决方案 »

  1.   

    login.user_name.value 不存在
      

  2.   

     document.getElementByName("user_name").value;
      

  3.   

    你好,参照你的 提示,改成了这样,还是不行啊。这是怎么回事呢?<html>
    <head>
    <title>3-8.html</title>
    <style>.tbl{font-size:10pt;width:30%;text-align:right;background-color:#abcdef;}
    </style>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script type="text/javascript">
    //用来检查用户输入是否为空的函数
    function check_name()
    {
         //判断表单login中,名为user_name的input元素的值是否为空
         var code=document.getElementByName("user_name").value;
         if(code=="")
         {
             alert("请输入用户名!");
             return false;
         }
    }
    </script></head>
    <body>
    <!--注意,这里要添加onsubmit属性,通过它,当submit按钮被单击时,JavaScript函数check_name被调用-->
    <form name="login" action="3-9.php" method="POST" onsubmit="return check_name()">
    <table BORDER="0" WIDTH="200px" ALIGN="left">
       <tr>
           <td class="tbl">用户名:</td><td><input type="text" name="user_name"></td>
       </tr>
       <tr>
           <td><input type="submit" value="登入系统" onclick="check_name();"></td>
       </tr>
    </table></form>
    </body>
    </html>
      

  4.   

    函数中有错!
    alert("请输入用户名!")
    分号是全角的
      

  5.   


    sorry,这个没注意,已经改过来了,可是还是不行呀。<html>
    <head>
    <title>3-8.html</title>
    <style>.tbl{font-size:10pt;width:30%;text-align:right;background-color:#abcdef;}
    </style>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script type="text/javascript">
    //用来检查用户输入是否为空的函数
    function check_name()
    {
         //判断表单login中,名为user_name的input元素的值是否为空
         var code=document.getElementByName("user_name").value;
         if(code=="")
         {
             alert("请输入用户名!");
             return false;
         }
    }
    </script></head>
    <body>
    <!--注意,这里要添加onsubmit属性,通过它,当submit按钮被单击时,JavaScript函数check_name被调用-->
    <form name="login" action="3-9.php" method="POST" onsubmit="return check_name()">
    <table BORDER="0" WIDTH="200px" ALIGN="left">
       <tr>
           <td class="tbl">用户名:</td><td><input type="text" name="user_name"></td>
       </tr>
       <tr>
           <td><input type="submit" value="登入系统" onclick="check_name();"></td>
       </tr>
    </table></form>
    </body>
    </html>
      

  6.   

    是 getElementsByName 吧? 她返回的是一个集合数组。所以应该改为下面这样: var code=document.getElementsByName("user_name")[0].value;
      

  7.   


    可以了,非常感谢,但是提示框为什么会弹出两次,第一次点了确定又弹出一次,第二次再点了确定才不弹出。已经搞定了,onclick和onsubmit重复了