Sellest, miks IE7 raadionupud ei ole valitavad..

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 ;)