为什么我的Javascript电子邮件验证无效

时间:2013-03-06 23:55:26

标签: javascript jquery forms validation input

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

1 个答案:

答案 0 :(得分:3)

首先,您的代码包含错误,因为您遗漏了}。 其次,如果点击按钮validateForm,则不要致电join

$('#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');
            }
        });