Koostasin leheküljel dünaamiliselt raadionuppe. IE8, FF korral töötas raadionuppude lisamine järgmise skriptiga probleemideta:
var selectorTemplate = 'whatever content <input type="radio" class="Selector"/> whatever content';
var selector = container.append($(selectorTemplate)).find('.Selector:last');
if(someCondition) { selector.attr('checked', 'checked'); }
selector.attr("name", this.configuration.RadiobuttonName);
selector.bind("change", this.selectionChanged);
ja siis tuli info, et IE6-7 korral ei ole antud raadionupud valitavad. Klikkimise peale lihtsalt ei juhtu midagi. Lisaks sellele, et event ei käivitu, ei muutu ka raadionupu checked staatus. WTF?
Pärast vaevalist IE6-7-ga testmasina otsinguid ja pea vastu klaverit peksmist kohtasin google’s vihjet, et vana IE ei lubavat raadionuppe valida kui neil ei ole name-atribuuti. Kiire test näitas et selline totter väike muudatus nagu “name=’böö’” on see mis eraldab töötavat skripti mittetöötavast:
var selectorTemplate = 'whatever content <input type="radio" class="Selector" name=”any”/> whatever content';
Kas JS progemine on nõme või on see hoopis väga nõme ? Ohjah.
BTW: IE6 saab kõige lihtsamalt Windows7 all XPMode vastavast virtuaalmasinast ;)
Kommentaare ei ole:
Postita kommentaar