我用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;
}
}
答案 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');
}
});