Возможно, это не решение, которое войдет в книгу за чистоту, но у меня все получилось.
http://jsfiddle.net/C9At9/3/
HTML:
<input type="radio" name="radioBtn" id="radioBtn1" value="A" onmouseup="toggle(this);"/>
<input type="radio" name="radioBtn" id="radioBtn2" value="A" onmouseup="toggle(this);" />
<input type="radio" name="radioBtn" id="radioBtn3" value="A" onmouseup="toggle(this);"/>
Javascript:
function toggle(radioBtn)
{
if(radioBtn.checked)
{
setTimeout("disableRadio('"+radioBtn.id+"')",10);
} else {
radioBtn.checked = true;
}
}
function disableRadio(radioId) {
el = window.document.getElementById(radioId);
el.checked = false;
}
Ваш код не работал, потому что установщик javascript отменяется событиями щелчка html или чем-то еще. Я не знаю, как объяснить это правильно, но задержка решает вашу проблему.
Надеюсь, это поможет!