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