0

当用户在电子邮件区域输入内容(并且显然正在验证)但由于某种原因它不起作用时,我试图关闭提交按钮。

我的验证有什么问题?

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 是解决方案中给出的小提琴。

4

1 回答 1

0

代码问题:

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;
    }
    


} 

这是一个工作演示

于 2013-10-13T02:57:22.057 回答