jQuery电子邮件验证问题
问题描述:
我发现了一个jquery电子邮件验证,它可以正常工作。我现在已经将它添加到其他函数来验证复选框和空字段。全部代码在这里:http://jsfiddle.net/vUAGs/4/jQuery电子邮件验证问题
function validateEmail(email) {
var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(email)) {
add_color(email, 'orange');
return false;
} else {
add_color(email, white);
return true;
}
}
即使电子邮件有效,表单仍然返回无效。
答
我对你们的小提琴一些变化,现在工程....你可以细化代码;)
HTML:
<input class="email_val" type="email" id="emailin" value=""/>
JS:
function validate_form(){
$('form input:not(.checkbox_wrapper input, .email_val), textarea').each(function(){
if ($(this).val() == '') {
add_color($(this), red);
}
else {
add_color($(this), white);
}
});
var emailin = $('#emailin').val();
return (validateEmail(emailin) && check_Radio_Checkb() && true);
}
function validateEmail(emailin) {
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
alert(regex.test(emailin));
if(!regex.test(emailin)) {
add_color(email, 'orange');
return false;
} else {
add_color(email, white);
return true;
}
}
见worrking小提琴这里: http://jsfiddle.net/vUAGs/9/
答
您正在将jQuery对象传递给validateEmail,而不是电子邮件地址。
function validate_form(){
$('form input:not(.checkbox_wrapper input, .email_val), textarea').each(function(){
if ($(this).val() == '') {
add_color($(this), red);
}
else {
add_color($(this), white);
}
});
// V right here
return (!validateEmail(email.val()) && check_Radio_Checkb() && true); // Notice change here
}
进行更改并开始工作。
答
由于您正在传递输入字段,您仍然必须获取输入字段的值。
演示:
function validateEmail(email) {
var isValid = emailReg.test(email.val());
if (!isValid) {
add_color(email, 'orange');
} else {
add_color(email, "green");
}
alert(isValid);
return isValid;
}
记下你的validate_form()
函数返回语句不需要一个:http://jsfiddle.net/tive/vUcVa/
,你也可以声明emailReg
全局的功能范围内时,缩短您的功能像这样像你一样倒转。读好一点的^^
你有它的工作的例子罚款自己? – 2013-05-09 14:35:12
那么我已经发布上面的工作,但是当我检查是否所有的字段验证(返回true)时,我必须做错什么...... – Alex 2013-05-09 14:36:25
没有涉及验证电子邮件地址的jQuery代码。 – Ejaz 2013-05-09 14:37:12