为什么我的Javascript邮件验证不起作用?

Why doesn't my Javascript Email Validation Work

本文关键字:验证 不起作用 我的 Javascript 为什么      更新时间:2023-09-26

我用jquery和javascript做了一个简单的表单,但是电子邮件验证(确保它有@)。在其中,似乎不起作用。

这里是JSFiddle: http://jsfiddle.net/LCBradley3k/xqcJS/11/

下面是验证的代码。是不是放错地方了?

function validateForm() {
  var x = document.forms["signup"]["email"].value;
  var atpos = x.indexOf("@");
  var dotpos = x.lastIndexOf(".");
  if(atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
    $('#answer').html('Not a valid email')
    return false;
  }
}

首先,您的代码包含一个错误,因为您缺少}。其次,当按钮join被点击时,你不调用validateForm

$('#join').click(function () {
            var correct = true;
            var validEmail = true;
            $('input[type="text"]').each(function (indx) {
                var $currentField = $(this);
                if ($currentField.val() === '') {
                    $currentField.addClass('empty');
                    correct = false;
                    $currentField.one('keydown', function () {
                        $currentField.removeClass('empty');
                    });
                } else {
                    $currentField.removeClass('empty');
                }
            });              
            function validateForm() {
                var x = document.forms["signup"]["email"].value;
                var atpos = x.indexOf("@");
                var dotpos = x.lastIndexOf(".");
                if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {                       
                    correct = false;
                    validEmail = false;
                }
            }
            validateForm();
            if (correct) {
                $('#answer').html('Thank You!');
                setTimeout(function () {
                    $('.inputs').hide("slide", { direction: "up" }, 1000);
                }, 2000);
            } else {
                if(validEmail)
                     $('#answer').html('Please fill highlighted fields.');
                else
                     $('#answer').html('Not a valid email');
            }
        });