<script type="text/javascript">
                       function check(){
                             var x=document.getElementsByName("username").value;
                             if(x==null || x==""){
                                 alert("Please input username");
return false;
                             }
                       }
</script>
</head>

    <body>
               <form action="js.php" method="POST"  onsubmit="return check()">
                          <input type="text" name="username"></input>
                          <input type="submit" name="sub"></input>
               </form>
    </body>

解决方案 »

  1.   

    因为getElementsByName返回的是集合(哪怕只有一个元素),是无法直接用.value的
    这样就可以了
          var x = document.getElementsByName("username")[0].value;
      

  2.   

     function check(){
           var x=document.getElementsByName("username");//x结果是数组
           for(i=0;i<x.length;i++){
              if(x[i].value==null || x[i].value==""){
               alert("Please input username");    
               return false;
              } 
           }
             
     }    
      

  3.   

    function CheckSubmit()
    {
    document.getElementById("action").value = "SET";
    document.Form.submit();
    }
    function check()
    {
                              
          var x=document.getElementsByName("name").value;
          var y=document.getElementsByName("ip").value;
          if(x==null || x=="" || y=="" || y==null)
          {
          alert("Please input information");    
          return false;
          }   
    }    <form action="js.php" method="POST"  onsubmit="return check()">
            <input type="text" name="username"></input>
            <input type="submit" name="sub"></input><tr>
            <td colspan=7 align="right"><input type="button" class="btn" name="Submit" value="确定" onclick="CheckSubmit()"></td>
         </tr>    
     </form>    谢谢楼上,现在代码是这样的,但是检测name和ip非空的功能还是没用,我空着提交照样ok。。
      

  4.   

    我5楼写错了,那个getElementsById后面加了[0]了已经,还是没有起作用。。
      

  5.   

    楼主没写过也看仔细点吧,就差手把手教你了  var x=document.getElementsByName("name")[0].value;
      var y=document.getElementsByName("ip")[0].value;
      

  6.   

    我试了下,更诡异的事情是,我把form里的 onsubmit 那里改成:onsubmit="return false"表单竟然还能正常提交。。??这是为嘛@ @
      

  7.   

    Form 对象的 onsubmit 属性指定了一个事件句柄函数。当用户单击了表单中的 Reset 按钮而提交一个重置时,就会调用这个事件句柄函数。注意,当调用方法Form.submit() 时,该处理器函数不会被调用。注意后面那句调用方法Form.submit() 时,该处理器函数不会被调用。根据你的代码,在button中调用form.submit(),这个时候是不会触发form的onsubmit事件的。以下随便取一
    1.把button的type改为submit,不要显示调用form.submit()
    2.显示调用form.submit(),在提交前验证form
      

  8.   


    <script type="text/javascript">
     
    function CheckSubmit()
    {
    document.getElementById("sessionID").value = window.parent.sessionID.value;
    document.getElementById("action").value = "SET";

    document.Form.submit();

    }function CheckInput()
    {
    var ctrname =  document.getElementsByName("optctr_name")[0].value;
    var ctrip =  document.getElememntsByName("optctr_ip")[0].value;
    if ( ctrname == "" || ctrname == null || ctrip == null || ctrip == "" )
    {
    alert("complete the information");
    return false;
    }
    }</script>
    <body><form action="/cgi-bin/optctrmod.cgi" method="get" name="Form" onsubmit="return CheckInput()">
    <input type="hidden" name="sessionID">
    <input type="hidden" name="action"><table width="80%" class="field" border="0" cellspacing="1" cellpadding="4" align="center" >
    <tbody> 
    <tr>
        <td class="bar" width="10%">名称</td>
        <td class="bar" width="15%">IP地址</td>
        <td class="bar" width="15%">子网掩码</td>
     
    </tr>
    <tr><td width="10%">网络1</td>
    <td width="15%">192.168.1.2</td>
    <td width="15%"></td>
    </tr></table><br><br><table width="80%" style="white-space:pre-wrap" class="field" border="0" cellspacing="1" cellpadding="4" align="center"><tr><td class="bar" colspan="7" align="right">
     操作 <select name="optctr_modtype">
    <option></option>
    <option value="mod">修改</option>
    <option value="del">删除</option>
    </select>
    </td></tr><tr>
    <td width="20%" align="center"><b><font size="2" >名称</font></b></td>
    <td width="80%" align="center"><input style="width:300px" type="text" name="optctr_name"></td></tr><tr><td width="20%" align="center"><b><font size="2" >IP地址</font></b></td>
    <td width="80%" align="center"><input style="width:300px" type="text"  name="optctr_ip"></td></tr><tr>
            <td colspan=7 align="right"><input type="button" class="btn" name="Submit" value="确定" onclick="CheckSubmit()"></td>
         </tr>    
         </tbody>
       </table>
    </p>
    <br>
    <br>
    <br>
    </form>
    </body>
    </html>整个代码
      

  9.   


    谢谢,在提交前验证,是不是在checksubmit函数里的 form.submit之前加判断语句?
      

  10.   

    var ctrip =  document.getElememntsByName("optctr_ip")[0].value;这里写错了,doucment.getElementsByName("optctr_ip")[0].value
      

  11.   

    是var ctrip =  document.getElementsByName("optctr_ip")[0].value;