简单的Javascript验证问题求个人指导一下

 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title> 
    </head>
    <body>
        <script>
            function checkForm(){

                if(document.form1.username.value==""){
                    alert("用户名不能为空");
                    return false;
                }
                if(document.form1.userpassword1.value==""){
                    alert("用户密码不能为空");
                    return false;
                }
                if(document.form1.userpassword2.value==""){
                    alert("重置密码不能为空");
                    return false;
                }
                return true;
            }
        </script>
        <form action="index.jsp" method="post" name=form1 >
        用户名:<input type="text" name=username/>*(带*的必须填写)<br />
             密码:<input type="password" name=userpassword1 />*<br />
          重置密码:<input type="password" name=userpassword2 />*<br />  
         Email:<input type="text" name="username"/>*(将发送注册确认邮件)<br />
                     姓名:<input type="text" name="username"/><br />
                     性别:<select name="sex" size="1">
                    <option selected value="男">男</option>   
                    <option value="女">女</option> 
               </select>  <br />
                推荐人:<input type="text" name="username"/><br />
         <input type="submit" value="确定" onclick="return checkForm()"/><input type="reset" value="重填"/>
        </form>
    </body>
</html>
我在myeclipse自带浏览器结果是 无论如何用户名是否为空验证都是true 在搜狗浏览器就是验证都是false  改成document.getElementById("username").value==""
这样验证就可以正确执行了  但是前一种方法错误在哪里,求个人指导一下。

多个同名name使用document.formname.name得到的是dom数组,不是dom对象

 if(document.form1.username[0].value==""){

页面并没有发现id为username的,,