Javascript 表单验证未定义或空引用';更换';

Javascript 表单验证未定义或空引用';更换';,javascript,html,validation,Javascript,Html,Validation,我试图用下面的代码验证一个简单的表单,我不断得到以下错误:错误:无法获取未定义或空引用的属性“replace”。我做错了什么 JavaScript: var test = function(){ var e = document.getElementsByTagName("*"); for (var i = 0; i < e.length; i++){ var t = e[i].getAttribute("type");

我试图用下面的代码验证一个简单的表单,我不断得到以下错误:错误:无法获取未定义或空引用的属性“replace”。我做错了什么

JavaScript:

var test = function(){
        var e = document.getElementsByTagName("*");
        for (var i = 0; i < e.length; i++){
            var t = e[i].getAttribute("type");
            var n = e[i].tagName;
            var v = e[i].value.replace(" ", "");
            if (v === "" && (n === "input" && (t === "text" || t === "tel" || t === "email") || n === "select")){
                alert("Please Fill Out All Fields");
                return false;
            }
        }
    }
var测试=函数(){
var e=document.getElementsByTagName(“*”);
对于(变量i=0;i
HTML:






提交
行:

> var e = document.getElementsByTagName("*");
将返回一个值,该值是文档中的每个元素。并不是每个元素都有值属性,因此在执行此操作时:

> var v = e[i].value.replace(" ", "");
您将未定义的属性视为字符串,而它不是字符串

要验证表单控件,请使用类似以下内容:

var elements = document.forms['form1'].elements;
因此,它只包含form1形式的控件

var elements = document.forms['form1'].elements;