繁体   English   中英

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

[英]How to uncheck checkbox using jQuery Uniform library

取消选中checkbox出现问题。 看看我的jsFiddle ,我在尝试:

   $("#check2").attr("checked", true);

我使用制服来设置checkbox样式,它无法检查/取消选中 checkbox

有任何想法吗?

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

$('#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()复选框检查值

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

示例: http //jsfiddle.net/r87NH/4/

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

$("body").on("click", "#check1", function () {
    var two = $("#check2").attr("checked", this.checked);
    $.uniform.update(two);
});
$("#chkBox").attr('checked', false); 

这对我有用,这将取消选中复选框。 以同样的方式我们可以使用

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

选中复选框。

如果您使用的是统一1.5,那么使用这个简单的技巧来添加或删除check的属性
只需在复选框的输入字段中添加value =“check”即可。
在添加此代码uniform.js > function doCheckbox(elem){ > .click(function(){

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');
}

如果您使用的是统一2.0,那么使用这个简单的技巧来添加或删除check的属性
在这个classUpdateChecked($tag, $el, options) { function change

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

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

}
$('#check1').prop('checked', true).uniform(); 
$('#check1').prop('checked', false).uniform(); 

这对我有用。

这样做:

$('#checkbox').prop('checked',true).uniform('refresh');

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

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

对于切换,你可以使用if else和function

如果你使用文档中提到的javascript更新元素,你需要调用$.uniform.update()

首先, checked可有一个值checked ,或一个空字符串。

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

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

  $("#checkall").change(function () { var checked = $(this).is(':checked'); if (checked) { $(".custom-checkbox").each(function () { $(this).prop("checked", true).uniform(); }); } else { $(".custom-checkbox").each(function () { $(this).prop("checked", false).uniform(); }); } }); // Changing state of CheckAll custom-checkbox $(".custom-checkbox").click(function () { if ($(".custom-checkbox").length == $(".custom-checkbox:checked").length) { $("#chk-all").prop("checked", true).uniform(); } else { $("#chk-all").removeAttr("checked").uniform(); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" id='checkall' /> Select All<br/> <input type="checkbox" class='custom-checkbox' name="languages" value="PHP"> PHP<br/> <input type="checkbox" class='custom-checkbox' name="languages" value="AngularJS"> AngularJS<br/> <input type="checkbox" class='custom-checkbox' name="languages" value="Python"> Python<br/> <input type="checkbox" class='custom-checkbox' name="languages" value="Java"> Java<br/> 

另一种方法是,

使用$('#check2').click();

这会导致统一检查复选框并更新它的掩码

像广播btn一样的复选框

$(".checkgroup").live('change',function() { var previous=this.checked; $(".checkgroup).attr("checked", false); $(this).attr("checked", previous); });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM