Проверка подлинности электронной почты Javascript + добавление текста с ошибками - PullRequest
0 голосов
/ 31 июля 2011

Я пытаюсь выполнить проверку формы в 2 этапа. Одна сторона клиента, одна сторона сервера. Мне удалось заставить некоторые части проверки клиента работать. У меня возникают специфические ошибки ... Код:

//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 работает до определенной степени, но НЕ меняет текст.

Веб-сайт «тестирования» можно проверить по адресу www.tudatoskommunikacio.hu/gergo, если вы хотите ознакомиться с его HTML-частью. Я совершенно новичок в JavaScript, и я верю, что это приводит к ошибкам. Я пытался сузить свои ошибки с помощью Jlint, но кроме нескольких проблем, которые я читаю в Интернете, с которыми я могу жить, ничто не выделяется как недостаток мэра. Спасибо за помощь, я совершенно отчаялся здесь ...

1 Ответ

0 голосов
/ 31 июля 2011

Это просто ошибка копирования-вставки.В верхней части кода:

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

Вы выбираете идентификатор ceg_sim для переменной cegemail

Другая проблема также простотривиальная орфографическая ошибка:

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

Вам не хватает "o".

Я настоятельно рекомендую использовать отладчик javascript в будущем, чтобы отследить эти тривиальные ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...