IE 6 and IE 7 - Radio buttons doesn't select ⮐
Recently I stumbled on a problem with radio buttons which doesn’t get selected in IE 6 and 7 browsers and works with 8 and future browsers. Interesting the problem has been narrowed down to the way the DOM is built for radio buttons.
var el1 = document.createElement("input");
el1.type = "radio";
el1.name = "gender";
el1.id = "gender_m";
el1.value = "M";
var el2 = document.createElement("input");
el2.type = "radio";
el2.name = "gender";
el2.id = "gender_f";
el2.value = "F";
var container = document.getElementById("container");
container.appendChild(el1);
container.appendChild(el2);
Here is the fix. Once re-written like below, it worked well.
function createRadio(cfg)
{
var input = "input";
var type = " type='radio' ";
var name = " name='" + cfg.name + "' ";
var value = " value='" + cfg.value + "' ";
var id = " id='" + (cfg.name+"_"+cfg.value) + "' ";
var domStr = "<" + input + type + name + value + id + ">";
return document.createElement(domStr);
}
var el1 = createRadio({'name':'gender', 'value:'M' });
var el2 = createRadio({'name':'gender', 'value:'M' });
var container = document.getElementById("container");
container.appendChild(el1);
container.appendChild(el2);
IE 6 and IE 7 browsers doesnt seems to handle the incremental building of element well. It needs all the data upfront to build the DOM element.
Happy Coding!