2011-07-31 7 views
-1

私は2つのステップでフォーム検証をしようとしています。 1つのクライアント側、1つのサーバー側。私は、クライアントチェックの一部を動作させることができました。私は...コード特有のバグを経験しています: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"を行うもの。他の2人は自分自身を上げますが、それとは異なります。 cegemailはALLでは動作しません。 cegbeoszはある範囲では動作しますが、テキストは変更されません。

「テスト」ウェブサイトは、http://www.tudatoskommunikacio.hu/gergoでチェックすることができます。私はJavaScriptにはかなり新しいです。私はそのエラーを引き起こしていると信じています。私はJlintを使って自分の過ちを絞り込もうとしましたが、いくつかの問題のほかに、私が暮らすことができるウェブを読み、市長の瑕疵として目立つものは何もありません。助けてくれてありがとう、私はここでかなり切望しています...

答えて

0

それは見た目でコピー貼りのエラーです。あなたのコードの上部には:

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

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

あなたはあなたの他の問題はまた、単に些細なスペルの間違いである cegemail変数

ためceg_sim IDを選択していますあなたは "o"を忘れています。

今後、これらの些細な間違いを犯すために、JavaScriptデバッガを使用することを強くお勧めします。