我試圖做一個表單驗證的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來縮小自己的錯誤,但有幾個問題,我在網絡上我可以住讀的旁邊,沒有站出來作爲一個市長缺陷。感謝您的幫助,我在這裏很絕望......