2013-05-15 127 views
-1

我想創建一個表單驗證腳本。到目前爲止,我所做的一切都在下面,希望能夠自我解釋,這並不是很複雜。但是,我遇到了一個問題,那就是當輸入有效的電子郵件時,它不會提交表單。問題jQuery表單驗證代碼

總之,發生的事情是這樣的:

(1)當輸入任何內容,無效類加罰款,形式不提交。 (2)當輸入無效的電子郵件時,無效的類將被正確添加並且表單不會提交。 (3)當輸入有效的電子郵件時,表單什麼也不做,也不提交有效的條目。

任何人都可以看到代碼中的任何東西,可能會導致此並提供補救措施?

謝謝

$(function(){ 

var emailbox, emailval, emailreg, pcount; 
    emailbox = $('#e-mail'); 
    emailval = $('#e-mail').val(); 
    emailreg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
    pcount = 0; 

    $('form').on('submit', function(e){ 
     e.preventDefault(); 

     if (emailval === '' || emailval === ' ') { 
      emailbox.addClass('invalid'); 
      pcount += 1; 
     } 

     if (!emailreg.test(emailval)) { 
      emailbox.addClass('invalid'); 
      pcount += 1; 
     } 

     if (pcount === 0) { 
      return true; 
     } 
    }); 
}); 
+0

你有沒有考慮['jquery.validate'(http://docs.jquery.com/Plugins/Validation)? –

+0

不,我正在嘗試學習jQuery,並試圖儘可能多地編寫自己的代碼。 –

回答

0

試試這個 -

$('form').on('submit', function(e){ 
     if (emailval === '' || emailval === ' ') { 
      emailbox.addClass('invalid'); 
      return false; 
     } 

     if (!emailreg.test(emailval)) { 
      emailbox.addClass('invalid'); 
      return false; 
     } 
});