2013-05-09 116 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全局的功能範圍內時,縮短您的功能像這樣像你一樣倒轉。讀好一點的^^