看看这个 fiddle :http://jsfiddle.net/5rmEe/
目标是当用户单击单选按钮(如果已选中)时取消选中它,如果未选中则选中它
但是似乎点击事件触发了两次,使得检查/取消检查非常错误......
我尝试了以下组合
e.stopPropagation();
e.preventDefault();
命令,但每个命令都会导致不同的错误......
我将如何实现这个目标并相应地修复该代码?
最佳答案
我同意其他人的观点,复选框会更好。
不过,话虽如此,这里有一些可能对您有用的东西。首先,单选按钮上的选中属性标记其已选中。因此,要删除检查,您必须删除该属性。但是,当单击单选按钮时,它想要将属性放回去。
我的解决方案实际上更像是一种黑客攻击。我正在添加另一个属性,并将其用作标志来确定是否删除或添加选中的属性。 HTH
$('input[type=radio]').each(function(){
var input = $(this);
input.click(function(e){
if(input.attr('cval')==='1'){
input.attr('cval', '0');
input.removeAttr('checked');
}
else{
input.attr('cval', '1');
input.attr('checked', 'checked');
}
});
});
关于javascript - 取消选中单选按钮是有问题的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13056825/