✉️ Saņem šito visu e-pastā. Tā vietā, lai palaistu garām kaut ko no tā, ko es rakstu savā blogā, tagad vari pierakstīties un saņemt e-pastā visu, ko es te rakstu. Tas nav bieži.

← Uz sākumu

IE un <option disabled="disabled"...>

2003. gada 10. oktobrī, 5 komentāri

Vakar man nācās sastapties ar kārtējo Internet Explorer nepilnību. Šī visādi citādi labā pārlūka izstrādātāji ir izdomājuši, ka elementam option parametrs disabled ir jāapstrādā programmētājam. T.i. - ja mēs šo parametru norādam kādam no saraksta (select) elementiem, lietotājs aizvien vēl būs tiesīgs izvēlēties šo elementu. Mozilla un Opera visnotaļ korekti to neļauj darīt.

Pasēroju un uzrakstīju maziņu javaskriptiņu, kurš ir specifisks IE. Ja nu kādam noder.

function option_do(form, element) {
    if (document.all) {
        var i = 0;
        var sel = document.forms[form][element];

        for (i = 0; i < sel.options.length; i++) {
            if (sel.options(i).disabled) {
                sel.options(i).style.color = '#999';
                sel.options(i).style.fontWeight = 'bold';
            }
        }

        ok = false;

        if ((sel.selectedIndex != -1) && 
            (sel.options(sel.selectedIndex).disabled)) {
            for (i = sel.selectedIndex; i < sel.options.length; i++) {
                if (!ok && !sel.options(i).disabled) {
                    sel.options.selectedIndex = i;
                    ok = true;
                }
            }
            if (!ok)
                for (i = sel.selectedIndex; i >= 0; i--) {
                    if (!sel.options(i).disabled) {
                        sel.options.selectedIndex = i;
                        ok = true;
                    }
                }
        }
    }
}
  }

Tu atbildi augstāk redzamajam komentāram. Atcelt

Gravatar es

2003. gada 10. oktobrī, plkst. 15:54

nu jau nu jau, laacz. javascript variables nesakas ar '$'..

Gravatar laacz

2003. gada 10. oktobrī, plkst. 15:55

Fixed :P :) Paarrakstiiju mazliet (optimizeeju) un kljuudiijos ;P

Gravatar delf

2003. gada 11. oktobrī, plkst. 09:19

nee nu izveleties jau var. vertibu tachu nenodod formai peec submita? jebshu nodod,- tad tas jaumuutu M$ coderu nolaidiiba?

Gravatar misame

2003. gada 13. oktobrī, plkst. 10:26

šitā rinda arī nav smuki: // if (!sel.options(i).disabled {// izskatās, ka trūkst aizverošās iekavas 1 gab pirms figūriekavas

Gravatar Krišs

2006. gada 27. februārī, plkst. 17:32

varbūt var vienkārši šitā: <code>

Ar domu - ja esi ieselectējis to, ko nedrīkst, tad tas tagad nebūs vis selectēts.