2014-10-30 43 views
0

我正在使用JörnZaefferer的jquery.validate.js。jquery.validate.js需要域後綴的電子郵件驗證

所有的校驗設置完全用下面的代碼:

$("#homeForm").validate({ 
    rules: { 
      email: { 
        required: true, 
        email: true        
      }, 
      mobile:{ 
        required:true, 
        minlength:11, 
        maxlength:11, 
      } 
    }, 
}); 

我的問題是,默認的電子郵件驗證將允許用戶離開了域名後綴,例如測試@試驗成功驗證。 ..

我想我的電子郵件驗證,要求用戶包括電子郵件,他們輸入(.COM,.co.uk ETC)

有沒有人有一個解決這個問題的域名後綴?提前感謝...

+0

我使用該腳本,它不讓我typ'test @ test'。 – Barmar 2014-10-30 10:06:17

+0

@Barmar http://jsfiddle.net/arunpjohny/qvm047hw/1/ - 你使用的是什麼版本?即使在1.13.0中也有同樣的錯誤 - [1.13.0](http://jsfiddle.net/arunpjohny/qvm047hw/2/) – 2014-10-30 10:08:12

+0

我的應用程序使用1.10.0,也許它從那時起就改變了? – Barmar 2014-10-30 10:11:55

回答

-2

所以,我似乎找到了通過.js文件帶小挖的解決方案:

 email: function(a, b) { 
      return this.optional(b) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a) 
     }, 

到:

我從改變默認的電子郵件規則:

 email: function(a, b) { 
      return this.optional(b) || /^[\w-\.][email protected]([\w-]+\.)+[\w-]{2,4}$/.test(a) 
     }, 

現在的作品完美,奇怪的錯誤的位,但我希望這可以幫助其他人誰發現了同樣的問題

+2

這不是一個錯誤,它是故意的,以匹配HTML5規範。 – Barmar 2014-10-30 10:21:07

+0

我不確定我的理解。我們仍然爲非HTML5瀏覽器開發... – JamesHusband 2014-10-30 10:47:20

+0

他正在驗證HTML5中的驗證。 – Barmar 2014-10-30 10:51:45