2011-07-31 32 views
-1

我試圖做一個表單驗證的2個步驟。一個客戶端,一個服務器端。我設法讓客戶端的某些部分檢查工作。我遇到特殊的錯誤...代碼:的Javascript電子郵件驗證+文本添加行爲小姐

//global vars 
var form, cegnev, cegnevInfo, cegcim, cegcimInfo, cegemail, cegemailInfo, cegkapcs, cegkapcsInfo, cegbeosz, cegbeoszInfo; 
form = $("#jelentkezes"); 
cegnev = $("#ceg_nev"); 
cegnevInfo = $("#ceg_nevInfo"); 
cegcim = $("#ceg_cim"); 
cegcimInfo = $("#ceg_cimInfo"); 
cegemail = $("#ceg_cim"); 
cegemailInfo = $("#ceg_emailInfo"); 
cegkapcs = $("#ceg_kapcs"); 
cegkapcsInfo = $("#ceg_kapcsInfo"); 
cegbeosz = $("#ceg_beosz"); 
cegbeoszInfo = $("#ceg_beszInfo"); 
(function() { 
"use strict"; 
// this function is strict... 
$(document).ready(function() { 
    function validateCegemail() { 
     //testing regular expression 
     var a = $("#ceg_email").val(), filter = /^(([^<>()\[\]\\.,;:\[email protected]\"]+(\.[^<>()\[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
     //if it's valid email 
     if (filter.test(a)) { 
      cegemail.removeClass("elizelte"); 
      cegemailInfo.removeClass("elizelte"); 
      cegemailInfo.text("Jó!"); 
      cegemail.addClass("lotto"); 
      cegemailInfo.addClass("lotto"); 
      return true; 
     } else { 
     //if it's NOT valid 
      cegemail.removeClass("lotto"); 
      cegemailInfo.removeClass("lotto"); 
      cegemail.addClass("elizelte"); 
      cegemailInfo.text("E-mail formátuma nem megfelelő! pl: [email protected]"); 
      cegemailInfo.addClass("elizelte"); 
      return false; 
     } 
    } 
    function validateCegnev() { 
     //if it's NOT valid 
     if (cegnev.val().length < 7) { 
      cegnev.removeClass("lotto"); 
      cegnevInfo.removeClass("lotto"); 
      cegnev.addClass("elizelte"); 
      cegnevInfo.text("Cég névnek több mint 7 betűből kell állnia!"); 
      cegnevInfo.addClass("elizelte"); 
      return true; 
     } else { 
    //if it's valid  
      cegnev.removeClass("elizelte"); 
      cegnevInfo.removeClass("elizelte"); 
      cegnevInfo.text("Jó!"); 
      cegnev.addClass("lotto"); 
      cegnevInfo.addClass("lotto"); 
      return false; 
     } 
    } 
    function validateCegbeosz() { 
     //if it's NOT valid 
     if (cegbeosz.val().length < 4) { 
      cegbeosz.removeClass("lotto"); 
      cegbeoszInfo.removeClass("lotto"); 
      cegbeosz.addClass("elizelte"); 
      cegbeoszInfo.text("Beosztás minimum 4 betűből kell, hogy álljon!"); 
      cegbeoszInfo.addClass("elizelte"); 
      return true; 
     } else { 
    //if it's valid   
      cegbeosz.removeClass("elizelte"); 
      cegbeoszInfo.removeClass("elizelte"); 
      cegbeoszInfo.text("Jó!"); 
      cegbeosz.addClass("lotto"); 
      cegbeoszInfo.addClass("lotto"); 
      return false; 
     } 
    } 
    function validateCegkapcs() { 
     //if it's valid 
     var a = $("#ceg_kapcs").val(), filter = /^(\b[a-zA-Z.-]+\b.*){2,4}$/; 
     if (filter.test(a)) { 
      cegkapcs.removeClass("elizelte"); 
      cegkapcsInfo.removeClass("elizelte"); 
      cegkapcsInfo.text("Jó!"); 
      cegkapcs.addClass("lotto"); 
      cegkapcsInfo.addClass("lotto"); 
      return true; 
     } else { 
     //Ha if it's NOT valid 
      cegkapcs.removeClass("lotto"); 
      cegkapcsInfo.removeClass("lotto"); 
      cegkapcs.addClass("elizelte"); 
      cegkapcsInfo.text("Kis és nagybetű, szóköz és kőtőjel csak a megengedett!"); 
      cegkapcsInfo.addClass("elizelte"); 
      return false; 
     } 
    } 
//On blur 
    cegnev.blur(validateCegnev); 
    cegemail.blur(validateCegemail); 
    cegkapcs.blur(validateCegkapcs); 
    cegbeosz.blur(validateCegbeosz); 
//On key press 
    cegnev.keyup(validateCegnev); 
    cegemail.keyup(validateCegemail);  
    cegkapcs.keyup(validateCegkapcs); 
    cegbeosz.keyup(validateCegbeosz); 

我不知道什麼適合或不張貼整個代碼,或者我有一個真正的問題,只是部分,原諒我不知道。我的問題是2個驗證完美無缺地工作。一個沒有「cegnev」和一個沒有「cegkapcs」。另外兩個人把自己擰了起來,但不同。 cegemail不能在ALL中工作。 cegbeosz確實在一定程度上工作,但不會改變文本。

的「測試」的網站可以在www.tudatoskommunikacio.hu/gergo檢查如果u想看看它的HTML部分。我對javascript很新,而且我相信這會導致錯誤。我嘗試用Jlint來縮小自己的錯誤,但有幾個問題,我在網絡上我可以住讀的旁邊,沒有站出來作爲一個市長缺陷。感謝您的幫助,我在這裏很絕望......

回答

0

這只是一個由它的外觀複製粘貼錯誤。在你的代碼的頂部:

cegcim = $("#ceg_cim"); 
cegcimInfo = $("#ceg_cimInfo"); 
cegemail = $("#ceg_cim"); 
cegemailInfo = $("#ceg_emailInfo"); 

您選擇ceg_sim ID爲cegemail變量

你的其他問題也只是一個簡單的拼寫錯誤:

cegbeosz = $("#ceg_beosz"); 
cegbeoszInfo = $("#ceg_beszInfo"); 

你錯過了一個「o」。

我強烈建議使用JavaScript調試器在未來趕上這些瑣碎的錯誤。