<SELECT> < /SELECT> problem IE i Ostali browseri

codemaker

Iskusan
Banovan
Poruka
6.514
Testiranje SELECTED opcije u nekoj listi moze prouzrokovati veliku glavobolju. A i inace je to jedna od najkomplikovanijih i najcesce problematicnih kontrola. Meni se eto danas desilo da sam izgubio dva sata, a znam o cemu se radi, samo nisam primetio kod koji nije bio dobro napisan u JavaScriptu, a samo Bog zna zasto sam ga pogresno napisao.

Dakle u JavaScript funkciji testiram izmedju ostalog i sta sadrzi izabrani element SELECT. Klasika, nista neobicno, nesto poput ovoga:
cTxt = document.forms[0].SelectShipping;
cTxt = cTxt.options[cTxt.selectedIndex].value;

E sad ako bih koristio kod u formi kao primeru A. - sve radi ok sem u IE. Za IE ovaj deo u zelenoj boji je .text a ne .value za SELECT !!
Iz tog razloga, svaki drugi broweer ce pokazati cTxt kao na primer "2 Days Air" ali ce zato IE izbaciti prazan string!

A. Ako sigurno necemo koristiti IE mozemo pisati ovako
<select name="SelectShipping" style="position:absolute;left:448px;top:280px;width:200px;z-index:10">
<option SELECTED >2 Days Air
<option >Next Day
</select>


Ako zelim da i IE moze koristiti isti JavaScript kod, moram definisatilistu SELECT kao u primeru B. jer je za IE .value zapravo ono sto je pisano dole CRVENOM bojom! Posto je ostalim browserima svejedno, samo da nesto ima, ne zaboravite da pisete SELECT sa sve VALUE unutar taga i naravno tekstualnim delom izvan njega, kao dole.

B. Ako ne znamo koji browser ce biti koriscen (pa i IE) moramo ovako - vazan detalj ovde je deo koda pisan CRVENIM!
<select name="SelectShipping" style="position:absolute;left:448px;top:280px;width:200px;z-index:10">
<option SELECTED VALUE="2 Days Air">2 Days Air
<option VALUE="Next Day">Next Day
</select>

Koristite ovaj drugi (B.) nacin da ne bi imali glavobolja kasnije kada budete zeleli dodati neki JavaScript da testiraSELECT listu
Tek da se nadje... Nadam se da ce nekom ustedeti koji sat glavobolje.
 

Back
Top