Javascript电子邮件验证+文本添加错过行为

时间:2011-07-31 14:03:21

标签: javascript forms validation email text

我试图通过两个步骤进行表单验证。一个客户端,一个服务器端。我设法让客户端的某些部分检查工作。我遇到了特殊的错误......代码:

//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 = /^(([^<>()\[\]\\.,;:\s@\"]+(\.[^<>()\[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[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: valaki@vhalahol.hu");
            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不能全部使用。 cegbeosz确实有效,但不会改变文本。

如果你想查看它的html部分,可以在www.tudatoskommunikacio.hu/gergo查看“测试”网站。我是javascript的新手,我确实相信这会导致错误。我试图通过使用Jlint来缩小我的错误,但除了一些问题之外,我在网上看到的我可以忍受,没有什么比市长的缺陷更突出。谢谢你的帮助,我非常绝望......

1 个答案:

答案 0 :(得分:0)

它只是一个复制粘贴错误。在代码的顶部:

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

您正在为 cegemail 变量选择 ceg_sim ID

你的另一个问题也只是一个简单的拼写错误:

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

你错过了一个“o”。

我强烈建议您将来使用javascript调试程序来捕获这些微不足道的错误。