IE un <option disabled="disabled"...>
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;
}
}
}
}
}
}
2003. gada 10. oktobrī, plkst. 15:54
nu jau nu jau, laacz. javascript variables nesakas ar '$'..
2003. gada 10. oktobrī, plkst. 15:55
Fixed :P :) Paarrakstiiju mazliet (optimizeeju) un kljuudiijos ;P
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?
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
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.