-2

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

1 回答 1

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');
            }
        });
于 2013-03-07T00:04:49.923 回答