2013-05-09 156 views
0

我发现了一个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; 
     } 
    } 

即使电子邮件有效,表单仍然返回无效。

+0

你有它的工作的例子罚款自己? – 2013-05-09 14:35:12

+0

那么我已经发布上​​面的工作,但是当我检查是否所有的字段验证(返回true)时,我必须做错什么...... – Alex 2013-05-09 14:36:25

+0

没有涉及验证电子邮件地址的jQuery代码。 – Ejaz 2013-05-09 14:37:12

回答

2

我对你们的小提琴一些变化,现在工程....你可以细化代码;)

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/

1

您正在将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 

    } 

进行更改并开始工作。

0

由于您正在传递输入字段,您仍然必须获取输入字段的值。

演示:

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全局的功能范围内时,缩短您的功能像这样像你一样倒转。读好一点的^^