Dynamically create radio buttons with DOM (even in IE)
Currently, the way to create radio buttons dynamically in Internet Explorer is to use document.createElement("<input type='checkbox'>"). However, that is not very cross browser friendly. There is an easier way, that involves using jQuery and the correct DOM methods:
First of all, the HTML:
<form action="mypage.php"> <div id="radios"></div"> </form>
Now add the radio buttons to the radios element.
$(window).load(
function()
{
$("#radios").each(
function()
{
var radio = document.createElement("input");
radio.name = "myradio";
radio.type = "radio";
radio.value = "radio1";
this.appendChild(radio);
for(i = 2; i < 10; i++)
{
radio = radio.cloneNode(true);
radio.value = "radio" + i;
this.appendChild(radio);
}
fixRadios(this.id);
}
)
}
);
function fixRadios(parent)
{
// uncheck existing radio buttons
$("#" + parent + " input[@type=radio]").click(
function()
{
$("[@name=" + this.name + "]").each(
function()
{
this.checked = false;
}
)
this.checked = true;
}
)
}
To see it in action: Dynamically create radio buttons with DOM
Comments