0

我有一个 Javascript 文件,用于检查表单的输入。但是,当我取消注释注释行时,javascript 文件无法正常运行,即使某些字段为空白,也会提交表单。事实上,Javascript 文件甚至没有进入第二个警报函数。到底是怎么回事?

function checkLogin()
{
    alert("HERE");
    //document.getElementById("errors").style.display = "none";
    var form = document.getElementById("form1");
    var problems = false;
    document.getElementById("errorJS").style.display = "none";
    document.getElementById("errorJS").innerHTML = "";
    alert("test");
    if(form.email.value.length < 1)
    {
        document.getElementById("errorJS").innerHTML += "Please enter your email address. <br />";
        problems = true;
        document.getElementById("errorJS").style.display = "block";
    }
    if(form.pword.value.length < 1)
    {
        document.getElementById("errorJS").innerHTML += "Please enter your password.";
        problems = true;
        document.getElementById("errorJS").style.display = "block";
    }
    alert(!(problems));
    return !(problems);
}

就是这样,该行返回null。谢谢你的回答。

4

2 回答 2

3

简短:它在某处抛出错误(假设在注释掉的行中),这会停止脚本的执行(不警告,不停止提交)。

这个错误似乎是document.getElementById("errors")返回null,在尝试访问它的style属性时抛出错误。你应该抓住这种情况:

var errors = document.getElementById("errors");
if (errors)
    errors.style.display = "none";
于 2012-07-11T20:23:51.660 回答
2

尽管您没有准确定义“无法正常运行”的含义,并且您没有提供任何错误信息(浏览器肯定会提供给),但我会说这document.getElementById("errors")是返回 null。这意味着您的文档中不存在 ID 为 的元素errors

在尝试访问其上的属性之前检查是否document.getElementById("errors")返回了可用的东西将是向前迈出的一大步。确保您的文档与您假设的一样。

于 2012-07-11T20:21:44.670 回答