JavaScript:获取未定义的变量消息,但变量已定义(我认为)

JavaScript:获取未定义的变量消息,但变量已定义(我认为),javascript,function,variables,undefined,Javascript,Function,Variables,Undefined,我对JavaScript比较陌生,尽管我最近有了转机。我刚刚编写了这个代码块来验证CMS生成的电子邮件字段,但我收到一条消息,invalidEmailMsg未定义。我曾尝试将变量声明放在函数内部、函数外部、if语句内部(基本上是挥动手臂),但消息仍然存在。有人能帮忙吗?谢谢你 var email = document.getElementById("trouble-tickets-email"); email.addEventListener("keyup", function() {

我对JavaScript比较陌生,尽管我最近有了转机。我刚刚编写了这个代码块来验证CMS生成的电子邮件字段,但我收到一条消息,invalidEmailMsg未定义。我曾尝试将变量声明放在函数内部、函数外部、if语句内部(基本上是挥动手臂),但消息仍然存在。有人能帮忙吗?谢谢你

var email = document.getElementById("trouble-tickets-email");
email.addEventListener("keyup", function() {  
    var invalidEmailMsg = document.forms[1].getElementsByClassName("form-error-msg")[3]; 
    var emailValue = email.value;
    var emailPattern = /.+@.+\..+/;       
    if(emailPattern.test(emailValue) === false) {   
        invalidEmailMsg.css.style("display","block");
        invalidEmailMsg.innerHTML = "custom message";
    }  
});

document.forms[1].getElementsByClassName(“form error msg”)
是否确实返回至少4个元素?尝试将
document.forms[1].getElementsByClassName(“form error msg”)[3]
拆分为单独的变量,并在假设结果有效之前确认每个值。此外,如果只有一个表单,您应该使用
document.forms[0]
来获取它,因为在JavaScript中数组是零基的。为什么不通过以下代码
document.forms[1]向您试图选择的元素添加
id
getElementsByClassName
如果与您的请求不匹配,则返回null或empty(第四个元素的类名为formerror msg,在您的情况下),因此您不能使
null.css
empty.css