Posted: 03.12.2004 01:35 Post subject: ako nekom zatreba...
dakle...mala javascripta koja prodje kroz sve form (bez obzira kolko formi ima na stranici) elemente s odredjeninm class nejmom i doda im evente na onfocus i onblur...ja je koristim da mi user zna na kojem je fieldu...pa evo je:
Code:
var focusCss = "textinputFocus";
var blurCss = "textinput";
function changeOnFocus()
{
this.className = "textinputFocus";
}
function changeBack()
{
this.className = "textinput";
}
function inputHighlight(imeKlase)
{
gdje je "textinput" ime css klase koja se poziva na onfocus (klasa cije je ime definirano u varijabli focusCss, u blurCss je ime css klase koja je inace na elementu)
ako netko ima ideju kako unaprijediti skriptu...samo naprijed
_________________ Just your average eccentric programmer.
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
Posted: 03.12.2004 11:11 Post subject:
U starijim browserima ovo se raspada i puca po savovima...
Za dohvat formi na stranici postoji document.forms kolekcija koja je podrzana svuda i nema potrebe za getElementsByTagName funkcijom (koja je podrzana samo u novijim browserima).
Ako koristis DOM funkcije, pametno je provjeriti prije poziva funkcije da li je funkcija podrzana, kako ti stariji browseri ne bi bacali errore. Dakle,
Code:
if (document.getElementsByTagName) {
formeArray = document.getElementsByTagName...
}
Nadalje, elementsArray = formeArray[i] mozda radi po ovom tvom principu, ali the safest way za trcati kroz elemente forme (i sve forme na stranici) bi bio ovaj (koliko sam ja testirao)
Code:
for (i = 0; i < document.forms.length; i++) {
frm = document.forms[i];
eles = frm.elements;
for (j = 0; j < eles.length; j++) {
eles[j]...; // eles[j] predstavlja element objekt, s kojim dalje mozes vec raditi sto hoces
}
}
Napomene:
- ne bi skodilo prije loopa provjeriti da li uopce postoje forme na stranici, da ne loopa bez razloga
- dvostruki looping u javascriptu i nije najsretnije rjesenje jer zna usporiti stvar (ovisno naravno kroz kaj loopas i kaj radis unutar loopa).
Iz osobnog iskustva znam da IE jako jako jako lose (citaj: sporo) radi sa switchanjem className-a nekog elementa - usporava se do boli, cpu usage skace nenormalno... Pogotovo ako slican princip primjenis na style-anje redaka u tablici recimo...
Ono sto bih predlozio kao mozda brze rjesenje (ne znam, nisam probao, imam temperaturu i neda mi se) je protrcati kroz sve form elemente, i ovisno o tipu elementa (type property), a ne o klasi (jer obicno ti to treba za sva text polja, ili sve textarea-e, a mozes uvest i neku exclude varijantu preko className-a ako bas trebas) attachat evente na njih i onda pokusati postaviti kroz .style property vrijednosti koje trebas za pojedine elemente (jer ce brze raditi u IE-u, i to puno brze) - naravno, neke stvari ne mozes dobiti na taj nacin (kroz .style), pa ti ne preostaje drugo doli rabiti className...
hm...razmisljao sam o tome da prema tipu elementa dodajem evente..ali mo ovo pruza vecu kontrolu
sto se ovog if-a tice...jebiga zaboravijo
uz to tek sm se sad odlucio malo vise posvetiti javascriptu...pa et tnx na savjetima
i da...brzo ozdravljenje
_________________ Just your average eccentric programmer.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum