我不确定这是否可能,但我想我会在俱乐部之前提出一个丑陋的解决方案。
我所拥有的是一组单选按钮,如果更改单选按钮值,我想触发一个功能。例如,有三个按钮X Y和Z,默认选择为Y.如果用户点击未选择的按钮(即X或Z),则该功能被触发但如果他/她点击Y(已经选择)则没有任何反应。
当然,最好的解决方案是在onchange事件上触发该函数,但IE6不会触发onchange,直到焦点不再出现在不满意的元素上。
那么有没有办法知道单选按钮的前一个值是什么,或者至少是它的默认值是什么?我可以轻松地创建一个默认值数组并检查,但我正在尝试减少开销。
请不要jQuery suggestions;)
答案 0 :(得分:2)
使用input元素的defaultChecked属性。
您也可以使用click事件,因为当用户使用空格键/输入键来“检查”时,点击事件也会触发。
答案 1 :(得分:0)
好吧,你可以在输入元素上使用onmousedown事件。它会执行您所要求的操作(在用户单击时激活事件),但使用onmousedown,您可以检查该元素是否已被选中。例如:
document.getElementById('#radio-button-x').onmousedown = function() {
if (this.checked == true) {
// was already selected
} else {
// not selected, do something
}
};