如何使用jQuery统一库取消选中复选框

如何使用jQuery统一库取消选中复选框,jquery,checkbox,Jquery,Checkbox,我在取消选中复选框时遇到问题。看看我正在尝试的地方: $("#check2").attr("checked", true); 我用于设置复选框的样式,但选中/取消选中复选框是行不通的 有什么想法吗?看看他们的文档,他们有一个$.uniform.update功能来刷新“uniformed”元素 示例: 另一种方法是 使用$('#检查2')。单击() 这将导致uniform选中复选框并更新其掩码。如果您使用文档中提到的javascript更新元素,则需要调用$.uniform.update(

我在取消选中
复选框时遇到问题。看看我正在尝试的地方:

   $("#check2").attr("checked", true);
我用于设置
复选框的样式,但选中/取消选中
复选框是行不通的


有什么想法吗?

看看他们的文档,他们有一个
$.uniform.update
功能来刷新“uniformed”元素

示例:


另一种方法是

使用
$('#检查2')。单击()


这将导致uniform选中复选框并更新其掩码。如果您使用文档中提到的javascript更新元素,则需要调用
$.uniform.update()

首先,
选中的
值可以是
选中的
,也可以是空字符串

$("input:checkbox").uniform();

$('#check1').live('click', function() {
    $('#check2').attr('checked', 'checked').uniform();
});

更简单的解决方案是这样做,而不是使用统一的:

$('#check1').prop('checked', true); // will check the checkbox with id check1
$('#check1').prop('checked', false); // will uncheck the checkbox with id check1
这不会触发定义的任何单击操作

您还可以使用:

$('#check1').click(); // 
这将切换复选框的选中/取消选中,但也将触发您定义的任何单击操作。所以要小心

编辑:jQuery 1.6+使用
prop()
而不是
attr()
作为复选框的选中值

如果您正在使用,那么使用这个简单的技巧来添加或删除check属性
只需在复选框的输入字段中添加value=“check”。
uniform.js
函数doCheckbox(elem)中添加此代码{
。单击(函数(){

if ( $(elem+':checked').val() == 'check' ) {
    $(elem).attr('checked','checked');           
}
else {
    $(elem).removeAttr('checked');
}   
如果您不想在输入框中添加value=“check”,因为在某些情况下您会添加两个复选框,请使用此选项

if ($(elem).is(':checked')) {
 $(elem).attr('checked','checked');
}    
else
{    
 $(elem).removeAttr('checked');
}
如果您正在使用,那么使用这个简单的技巧在这个
classUpdateChecked($tag,$el,options){
函数更改中添加或删除check的属性

if ($el.prop) {
    // jQuery 1.6+
    $el.prop(c, isChecked);
}

这对我有用

$("#chkBox").attr('checked', false); 
这对我有效,这将取消选中复选框。 以同样的方式,我们可以使用

$("#chkBox").attr('checked', true); 

选中复选框。

在某些情况下,您可以使用以下选项:

$('.myInput').get(0).checked = true

对于切换,您可以使用if-else和功能类似于radio btn的复选框

$(“.checkgroup”).live('change',function()){
var previous=已选中此项;
$(“.checkgroup).attr(“checked”,false);
$(此).attr(“选中”,前一个);
});

只要这样做:

$('#checkbox').prop('checked',true).uniform('refresh');
$(“#checkall”).change(函数(){
var checked=$(this).is(':checked');
如果(选中){
$(“.custom复选框”)。每个(函数(){
$(this).prop(“选中”,true).uniform();
});
}否则{
$(“.custom复选框”)。每个(函数(){
$(this).prop(“选中”,false).uniform();
});
}
});
//更改CheckAll自定义复选框的状态
$(“.custom复选框”)。单击(函数(){
if($(“.custom checkbox”).length==$(“.custom checkbox:checked”).length){
$(“#chk all”).prop(“选中”,true).uniform();
}否则{
$(“#chk all”).removeAttr(“checked”).uniform();
}
});

选择全部
PHP
AngularJS
Python

Java
在google chrome和firefox中,它对我都不起作用将布尔值作为
选中的
的值传递也没什么错。但是我们没有编写HTML标记。我们正在设置一个属性。看看
选中的
属性。没关系……我也不太明白为什么它无效……传递布尔值仅在1.6+中受支持,在此之前,您必须将checked属性设置为“checked”或将其删除。@mkoryak:在
1.4.4
中工作正常,但指向js和css文件的链接已断开。如果您的意思是说它在
1.6
中特别存在问题,那么这可能是真的,因为jQuery改变了然后恢复了行为或者
.attr()
。使用
1.6
或更高版本,您应该真正使用
.prop()
。我看不出更新的JSFIDLE和原始版本之间完全没有区别(一直到复选框2的错误标记),除了更新版本对我有效,而原始版本对我无效!?!?顺便说一句,所有这些像素绘制的统一形式在视网膜上看起来非常不稳定。对我不起作用也不起作用JSFIDLE不起作用或混淆了这使选中属性与jQuery 1.7.1中的属性相同。起作用,但不起作用。我认为最好使用.prop()函数而不是.attr()。否则它将无法始终按预期工作…非常感谢。我可以确认这是最简单的解决方案。
$("#chkBox").attr('checked', true); 
$('.myInput').get(0).checked = true
$('#checkbox').prop('checked',true).uniform('refresh');