[ darence @ 12.08.2008. 23:29 ] @
imam funkciju koja proverava da li je validan username
Code:
function checkuser(fld) {
    var error = "";
    var greska=0;
    var illegalChars = /\W/; // allow letters, numbers, and underscores
 
    if (fld.value == "") {
        fld.style.background = 'Yellow'; 
        error = "You didn't enter a username.\n";
        greska=1;
        //alert(error);
    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow'; 
        error = "The username is the wrong length.\n";
        greska=1;
        //alert(error);
    } else if (illegalChars.test(fld.value)) {
        fld.style.background = 'Yellow'; 
        error = "The username contains illegal characters.\n";
        greska=1;
        //alert(error);
    } else {
        fld.style.background = 'White';
    }
    if(greska) alert(error);
    return error;
}


kako da blokiram submit ako validacija ne prodje?
[ Aleksandar Ružičić @ 15.08.2008. 17:49 ] @
to se obicno radi ovako:
Code:

<form ... onsubmit="return validate(this)">
  ...
</form>

Code:

function validate(frm)
{
   var valid = false;

   // ovde ubaci proveru koja ce da podesi valid = true ukoliko je sve validno
  
  return valid; 
}
[ Nikola Poša @ 15.08.2008. 19:03 ] @
A mozhesh i ovako neshto... Prvo, to dugme u formi postavi da bude tipa "button", a ne "submit", a unutar linije koda za to dugme napishi:
Code:
onClick = "checkuser(fld);"

A zatim u skriptu, iza poslednjeg if-a dodaj jedan else i u njemu samo napishi:
Code:
document.imeForme.submit();

Nadam se da razumesh na shta sam mislio...

[Ovu poruku je menjao raynor dana 16.08.2008. u 12:03 GMT+1]
[ japan @ 15.08.2008. 19:33 ] @
a najbolje bi bilo da validaciju radis sa serverske strane. inace, js u browseru moze da se iskljuci u dva klika, pa si dzabe krecio...
[ Aleksandar Ružičić @ 15.08.2008. 21:14 ] @
@japan: recimo da imas formu od 20-30 polja (ja sam se susretao i sa veim brojem polja) gde imas izmedju ostalog i upload fajlova, popuins ti tu formu (za sta ti treba bar 2 min) i kliknes submit, cekas par minuta da se fajlovi uploaduju (u zavisnosti od konekcije i velicine+broja fajlova) i onda ti server kaze da ti se (recimo) sifre ne podudaraju (ono standardno confirm password), pa onda izmenis to i opet cekas da se uploaduje i onda ti mozda javi neku drugu gresku... naravno ovo ponavljanje se moze resiti pomocu malo bolje backend skripte (koja moze da kesira uploadovane fajlove i da izgenerise listu svih gresaka), ali da se validacija vrsila i na klijentu (javascript) onda bi sve bilo mnogo bolje.

zakljucak: i client side i server side validacije, uvek! (ali naravno client-side ne bi trebalo da zavisi od js-a, recimo primer koji je raynor naveo nece da radi ukoliko je js disableovan, tj forma nece nikad biti poslana, dok je primer koji sam ja dao nezavistan od js-a i ukoliko je js iskljucen jednostavno nece biti client validacije i samo ce server odraditi validaciju)
[ agvozden @ 15.08.2008. 21:20 ] @
Najbolje je da radis na oba nacina.

JS validacija je user friendly, a serverska validacija je sigurnosti radi...
[ japan @ 16.08.2008. 12:40 ] @
slazem se. mozda se nisam lepo izrazio, ali moja poenta je bila upravo to.
[ darence @ 16.08.2008. 18:27 ] @
hvala.
dali ste mi ideju sa ovim server-side. meni treba samo da u korisnickom imenu ne bude razmaka niti svega sto nije slovo ni cifra. u tom slucaju imam ideju da ne zabranjujem submit kao sto sam ranije mislio, nego ako unese razmak ili neki zabranjen karakter da mu dam alert, pa ako ne poslusa onda neka ga php stopira. sta mislite?