无法使用javascript访问第二个表单元素

无法使用javascript访问第二个表单元素,javascript,forms,Javascript,Forms,问题是,userid被抓取得很好,但是第二个元素“passwordfield”和所有剩余元素总是返回null。我尝试了所有获取该元素值的方法,但它们总是返回null对象,然后我的代码在尝试访问null值时抛出并出错 这是我的剧本 function formValidation() { var uid = document.registration.userid.value; document.write("<h1>" + uid + "</h1>");

问题是,userid被抓取得很好,但是第二个元素“passwordfield”和所有剩余元素总是返回null。我尝试了所有获取该元素值的方法,但它们总是返回null对象,然后我的代码在尝试访问null值时抛出并出错

这是我的剧本

function formValidation() {
    var uid = document.registration.userid.value;
    document.write("<h1>" + uid + "</h1>");
    try {
        var passid = document.registration.passwordfield.value;
        document.write("<h1>" + passid.value + "</h1>");
    } catch (error) {
        alert(error);
    }
    var uname = document.getElementById("username");
    document.write("<h1>" + uname + "</h1>");
    var uadd = document.getElementById("address");
    document.write("<h1>" + uadd + "</h1>");
    var ucountry = document.getElementById("country");
    document.write("<h1>" + uncountry + "</h1>");
    var uzip = document.getElementById("zip");
    document.write("<h1>" + uzip + "</h1>");
    var uemail = document.getElementById("email");
    document.write("<h1>" + uemail + "</h1>"); 

    {
        if (passid_validation(passid, 7, 12)) {
            if (allLetter(uname)) {
                if (alphanumeric(uadd)) {
                    if (countryselect(ucountry)) {
                        if (allnumeric(uzip)) {
                            if (ValidateEmail(uemail)) {
                                if (validsex(umsex, ufsex)) {}
                            }
                        }
                    }
                }
            }
        }
    }
    return false;
}

function userid_validation(uid, mx, my) {
    var uid_len = uid.value.length;
    if (uid_len == 0 || uid_len >= my || uid_len < mx) {
        alert("User Id should not be empty / length be between " + mx + " to " + my);
        uid.focus();
        return false;
    }
    return true;
}

function passid_validation(passid, mx, my) {
    var passid_len = passid.value.length;
    if (passid_len == 0 || passid_len >= my || passid_len < mx) {
        alert("Password should not be empty / length be between " + mx + " to " + my);
        passid.focus();
        return false;
    }
    return true;
}

function allLetter(uname) {
    var letters = /^[A-Za-z]+$/;
    if (uname.value.match(letters)) {
        return true;
    } else {
        alert('Username must have alphabet characters only');
        uname.focus();
        return false;
    }
}

function alphanumeric(uadd) {
    var letters = /^[0-9a-zA-Z]+$/;
    if (uadd.value.match(letters)) {
        return true;
    } else {
        alert('User address must have alphanumeric characters only');
        uadd.focus();
        return false;
    }
}

function countryselect(ucountry) {
    if (ucountry.value == "Default") {
        alert('Select your country from the list');
        ucountry.focus();
        return false;
    } else {
        return true;
    }
}

function allnumeric(uzip) {
    var numbers = /^[0-9]+$/;
    if (uzip.value.match(numbers)) {
        return true;
    } else {
        alert('ZIP code must have numeric characters only');
        uzip.focus();
        return false;
    }
}

function ValidateEmail(uemail) {
    var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    if (uemail.value.match(mailformat)) {
        return true;
    } else {
        alert("You have entered an invalid email address!");
        uemail.focus();
        return false;
    }
}

function validsex(umsex, ufsex) {
    x = 0;
    if (umsex.checked) {
        x++;
    }
    if (ufsex.checked) {
        x++;
    }
    if (x == 0) {
        alert('Select Male/Female');
        umsex.focus();
        return false;
    } else {
        alert('Form Successfully Submitted');
        window.location.reload()
        return true;
    }
}
函数formValidation(){
var uid=document.registration.userid.value;
文档。写入(“+uid+”);
试一试{
var passid=document.registration.passwordfield.value;
document.write(“+passid.value+”);
}捕获(错误){
警报(错误);
}
var uname=document.getElementById(“用户名”);
文件。写(“+uname+”);
var uadd=document.getElementById(“地址”);
文件。写(“+uadd+”);
var ucontry=document.getElementById(“国家”);
文件。写(“+uncountry+”);
var uzip=document.getElementById(“zip”);
文件。写(“+uzip+”);
var uemail=document.getElementById(“电子邮件”);
文件。写(“+uemail+”);
{
if(passid_验证(passid,7,12)){
如果(所有信件(联塞特派团)){
if(字母数字(uadd)){
如果(国家选择(UCONTRY)){
if(全数字(uzip)){
if(ValidateEmail(uemail)){
if(validsex(umsex,ufsex)){}
}
}
}
}
}
}
}
返回false;
}
函数userid_验证(uid、mx、my){
变量uid\u len=uid.value.length;
如果(uid|len==0 | uid|len>=my | uid|len=my | | passid|len
这是我的html

<!DOCTYPE html>
<html>
<head>

<title>form</title>

<script src="hai.js" type="text/javascript" ></script>
</head>

<body>
<h1>Registration Form</h1>
<p>Use tab keys to move from one input field to the next.</p>
<form name="registration" onSubmit="return formValidation();" action="hai.js"  METHOD="POST">
    User id:
    <input type="text" name="userid" size="12" /><br>
    Password:
    <input type="password" name="passwordfield" size="12" /><br>
    Name:
    <input type="text" name="username" size="50" /><br>
    Address:
    <input type="text" name="address" size="50" /><br>
    Country:
    <select name="country">
    <option selected="" value="Default">(Please select a country)</option>
    <option value="AF">Australia</option>
    <option value="AL">Canada</option>
    <option value="DZ">India</option>
    <option value="AS">Russia</option>
    <option value="AD">USA</option>
    </select><br>
    ZIP
    <input type="text" name="zip" /><br>
    Email:
    <input type="text" name="email" size="50" /><br>
    Sex:
    <input type="radio" name="sex" value="Male" /><span>Male</span><br>
    <input type="radio" name="sex" value="Female" /><span>Female</span><br>
    Language
    <input type="checkbox" name="en" value="en" checked /><span>English</span><br>
    <input type="checkbox" name="nonen" value="noen" /><span>Non English</span><br>
    About:<br>
    <textarea name="desc" id="desc"></textarea><br>
    <input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

形式
登记表
使用tab键从一个输入字段移动到下一个输入字段

用户id:
密码:
姓名:
地址:
国家: (请选择一个国家/地区) 澳大利亚 加拿大 印度 俄罗斯 美国
拉链
电邮:
性别: 男性
女性
语言 英语
非英语
关于:


问题可能出在document.write上,就好像它在页面加载后运行一样,它会覆盖您的页面,然后您当然不能再访问这些元素了


另外,为什么使用document.registration.userid而不是document.registration.username?根据浏览器的不同,getElementById可能无法处理名称属性。

问题在于密码字段前的document.write()。。出于某种原因,调用它会从文档中删除注册变量。。。 我不太清楚为什么

但我尝试将其删除为“document.write”,并以推荐的方式添加节点:

var myElement = document.createElement("h1");
myElement.appendChild(document.createTextNode("My Text here"));
document.appendChild(myElement);
它工作得很好。。。 您应该阅读以下内容:
我认为它可能会对您有所帮助:)

您不应该使用
文档。请在加载页面后编写
。它会破坏现有的内容…并认真考虑整齐地缩进代码。当您想使用
getElementById
时,您可能还应该为元素提供
id
s。