选中并取消选中复选框

问题描述:

如何正确选中并取消选中复选框? 我有很多麻烦。选中并取消选中复选框

这里是我的代码http://jsfiddle.net/N5Swt/

<input type="checkbox" id="checkbox1" /> <span> Check me! </span> 

// test1 
/*$('#checkbox1').attr('checked','true'); 
$('#checkbox1').attr('checked','false');*/ // This line doesnt work 

// test2 
$('#checkbox1').attr('checked','true'); 
$('#checkbox1').removeAttr('checked'); 
$('#checkbox1').attr('checked','true'); //This line doesnt work 

它不工作。为什么?

的jQuery:

您可以使用jQuery的prop()代替:

$('#checkbox1').prop('checked', true);

取消选中你只需使用:

$('#checkbox1').prop('checked', false);

jsFiddle here.


纯JavaScript:

在纯JavaScript,你可以使用.checked属性:

document.getElementById('checkbox1').checked = true; 

取消选中你只需使用:

document.getElementById('checkbox1').checked = false; 

​​

+1

嗯它的工作原理。谢谢。 – Neir0 2013-04-26 12:12:32

您应该使用prop()来设置复选框值而不是attr。

而你正在设置一个布尔值,所以你不应该使用字符串来设置属性的值。

$('#checkbox1').prop('checked',false); 

您也可以直接解决的元素属性:

document.querySelector('#checkbox1').checked = true; 
// or 
$('#checkbox1')[0].checked = true; 

JsFiddle演示

这是工作......

$('#checkbox1').attr('checked',true); 
$('#checkbox1').attr('checked',false); 
+1

这可以工作,但是当你向上下文添加另一个attr()行时,它只会失败 - 正如主题提升者所测试的那样。 – KevinIsNowOnline 2013-04-26 12:21:47

更好地利用本地JavaScript性能 其清晰并始终工作

$('#checkbox1')[0].checked = true;