1

我正在尝试使用 jQuery 来查看用户是否在我的文本框中输入了有效的电子邮件地址。基本上,我希望提交按钮在默认情况下保持禁用状态,但是在每个按键上我想查看电子邮件地址是否有效,然后我想启用该按钮。如果用户输入了有效的电子邮件,但随后又删除了部分使其再次无效(即@ 符号),我希望再次禁用提交按钮。

我在这里有一个部分工作的脚本。我的支票或 @ 符号效果很好,但我很难检查 .com、.co、.net、.org、.edu 等...由于某种原因,即使我没有输入,按钮也会一直启用电子邮件的有效“结尾”。

例如,“emailco@”被识别为有效的电子邮件。这是我的脚本:

<script>
$(document).ready(function() {

    $('#email').bind('keyup', function(e) {

        var email = document.getElementById("email");

        if (email.value.search("@") != -1) {

            if (
            (email.value.search(".com") != -1)||
            (email.value.search(".co") != -1)||
            (email.value.search(".org") != -1)||
            (email.value.search(".net") != -1)||
            (email.value.search(".gov") != -1)||
            (email.value.search(".biz") != -1)||
            (email.value.search(".me") != -1)||
            (email.value.search(".edu") != -1)) {

            document.getElementById("email_go").disabled = false; 
        }

        else {
            document.getElementById("email_go").disabled = true; 
        }
        }

        else {
            document.getElementById("email_go").disabled = true; 
        }
    }); 
});
</script>
4

4 回答 4

1
var email = $('#email').val();
    var pattern = ".+\\@@.+\\..+";
        var valid = email.match(pattern);
        if (valid == null) {
           alert("Not Valid");
           return;
        }
    else{
           alert("Valid");
           return;
    }
于 2013-09-24T09:42:55.100 回答
1

只需使用正则表达式:

if (email.value.search("@") != -1) {

    if (/(.+)@(.+)\.(com|edu|org|etc)$/.test(email.value))
}
于 2013-09-24T09:42:56.630 回答
1

尝试这个。当然,这只是一个基本示例,我确信现在的电子邮件地址可以不仅仅是下面数组中指定的内容。但是,仍然......你明白了......

//  Split the email to see if there's an "@" character
    var split = email.split('@');
    var split_count = split.length;

//  If there is, then split the second string by a "."
    if (split_count == 2) {
        var domain = split[1].split('.');
        var domain_count = domain.length;

        if (domain_count == 2) {
//          Store all of the accepted values for email endings
            var endings = ['org', 'com', 'net', 'edu', 'info', 'biz', 'me'];
            var result = $.inArray(domain[1], endings);

//          If the final 3 chars of the string are in the array, then proceed
            if (result > 0) {

            }
      }
  } 
于 2013-09-24T09:44:09.217 回答
1

I use this Regex Code to test email format using jQuery:

var email = $('.email').val();
    if(email.match(/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/))
    {
        alert('OK');
    }
于 2013-09-24T09:55:43.657 回答