Jestem coraz bliżej rozwiązania, ale nadal coś jest nie tak. Mój kod JS na chwilę obecną wygląda tak:
Kod
testFormularza={
rodzajePol:{
niepuste:[/.+/,'Proszę wypełnić pole'],
email:[/^[\w\.-]{2,}@[\w\.-]+\.[a-z]{2,5}$/,'Proszę podać prawidłowy adres e-mail'],
liczbacalkowita:[/^\d+$/,'Prawidłową wartością tego pola jest liczba całkowita'],
liczbarzeczywista:[/^(\d+|\d+,\d+)$/,'Proszę podać liczbę rzeczywistą (można użyć przecinka)'],
data:[/^\d+\-\d+\-\d{4}$/,'Proszę wpisać datę w formacie DD-MM-RRRR (numer dnia-numer miesiąca-rok) np. 23-02-2003'],
kodpocztowy:[/^\d{2}\-\d{3}$/,'Proszę podać kod pocztowy np. 06-600'],
m20m100:[/^.{20,100}$/,'Proszę wpisać nie więcej niż 100 znaków, ale też nie mniej niż 20.'],
duzelitery:[/^[A-Z]+$/,'Proszę używać wyłšcznie dużych liter w tym polu'],
url:[/^http\:\/\/.+\.[a-z]{2,5}$/i,'Proszę podać prawidłowy adres strony www np. http://strona.pl']
},
testuj:function(f){
var i,rodz;
for(i=0;i<f.elements.length;i++){
E=f.elements[i];
if(rodz=this.rodzajePol[E.getAttribute('rodzajpola')])
if(!rodz[0].test(E.value)){
E.focus();
E.select();
var el = E.getAttribute('id');
el.className = formularz_czerwona;
alert((E.getAttribute('komunikat')||rodz[1]));
return false;
}
}
return true;
}
}
Za zaznaczanie błędnego pola czerwoną obwódką odpowiadają te dwie linie:
Kod
var el = E.getAttribute('id');
el.className = formularz_czerwona;
Niestety, gdy ta druga linijka znajduje się w kodzie, dalsza część tego kodu nie jest już wykonywana, tzn. nie wyświetla się alert i funkcja nie zwraca false, tylko przechodzi do następnej strony. Próbowałem już na wszelkie sposoby, jednak nadal nie mam rozwiązania. Czy jestem chociaż na właściwym tropie?