Javascript 验证在表单上不起作用

Javascript 验证在表单上不起作用,javascript,html,Javascript,Html,我试图在用户在电子邮件区域输入内容时关闭submit按钮(显然是经过验证的),但由于某些原因它无法工作 我的验证有什么问题 function validateEmail(email) { var btnSubmit = document.getElementById("submitButton"); var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; btnSubmit.disa

我试图在用户在电子邮件区域输入内容时关闭submit按钮(显然是经过验证的),但由于某些原因它无法工作

我的验证有什么问题

function validateEmail(email) {

    var btnSubmit = document.getElementById("submitButton");


var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

 btnSubmit.disabled = !(validateEmail(email));


}  
我做错了什么?当用户输入的区域发生更改时(onchange=(“validateEmail(email);”)调用该函数

//////在我得到一个解决方案后,我尝试了它,JavaScript成功了!()但我认为我对某些东西的调用是错误的,因为我得到了这个警告:

。已禁用该按钮,因为您输入的电子邮件无效。:[object HTMLInputElement]

我是这样称呼它的

JavaScript是解决方案中给出的小提琴。

代码问题: 1.函数不进行任何验证。 您的函数不做任何事情,而是每次递归地调用自己

2.您没有使用创建的正则表达式 您为电子邮件创建的正则表达式不用于检查电子邮件字符串是否有效

解决方案: 您应该使用正则表达式检查电子邮件字符串是否有效,并相应地应用结果

function validateEmail(email) {

    var btnSubmit = document.getElementById("submitButton");
    var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if( re.test(email) ){
        return true;
    } else {
        btnSubmit.disabled = true;
        return false;
    }
    


} 

这里有一个

函数没有返回任何值?我在手机上读这个函数有困难吗,或者你的函数是无限递归的吗?我觉得这个函数应该是无限递归的谢谢你,它似乎可以工作…最后一件事…当我返回警报时,它不会返回用户发送的电子邮件,我是这样称呼它的。这是pro吗按方式?以下是alert告诉我的内容”。由于您输入的电子邮件无效,因此禁用该按钮。:[object HTMLInputElement]“感谢您的宝贵时间!