5

我正在使用 prettyCheckable jquery 插件使我的复选框和单选按钮看起来很漂亮,如果我使用 jquery 设置属性检查它不起作用,因为该插件隐藏了实际的复选框并使其自己覆盖 HTML 以美化复选框/收音机,因此当我选中收音机或复选框时 jquery 无法识别

//点击按钮我尝试了所有的东西,但没有任何效果。请帮忙

<input type="radio" id="rdTypeAdd" name="taxationtype" class="radiobutton" value="+" data-     label="Additive" data-customclass="margin-right" checked="checked" />    
<input type="radio" id="rdTypeSub" name="taxationtype" class="radiobutton" value="-" data-label="Subtractive" data-customclass="margin-right" />


    $('#rdTypeAdd').buttonset();
    $('[name="rdTypeAdd"][value="+"]').prop("checked", true);
    $('#rdTypeAdd').buttonset("refresh");

    //$('[name="rdTypeAdd"][value="+"]').attr("checked", true);
    //$('[name="rdTypeAdd"][value="+"]').prop("checked", true).trigger("change");

    //($('.rdTypeAdd').prop('checked',true));
4

5 回答 5

3

您可以使用非常可检查的功能:

$('[name="rdTypeAdd"][value="+"]').prettyCheckable('check');

$('[name="rdTypeAdd"][value="+"]').prettyCheckable('uncheck');

于 2013-12-19T05:52:42.673 回答
3

不知道这是多少黑客,但我能够让一个 div 来检查和取消选中一个 prettyCheckable 复选框。我注意到当我从 prettyCheckable 中删除 class="checked" 时,该复选框被取消选中。

$("#checkbox").prettyCheckable();
    $("#checkboxDiv").click(function() {
    if ($("#checkbox").is(':checked'))
    {
        $("#checkbox").next().removeClass("checked");
        $('#checkbox').each(function(){ this.checked = false; });
    } else {
        $("#checkbox").next().addClass("checked");
        $('#checkbox').each(function(){ this.checked = true; });
    }
});

从(即 .next() 到 prettyCheckable 元素)中添加或删除“已检查”类并在原始复选框元素中设置 checked=true 都需要它才能工作。然而,我的 if cookie is set 只能选中 ' 类的框。就像我说的那样,我不知道这是多么糟糕的 hack,但它对我有用,希望它可以帮助你。不知道为什么 prettyCheckable 没有这种能力或至少记录它,因为我找不到任何东西。

于 2013-10-31T16:53:10.630 回答
1

这个答案建立在@kravits88 和这个github 问题上

var $radio = $('[name="rdTypeAdd"][value="+"]');
$radio.prettyCheckable('check');
$radio.prop('checked', true).change();
$radio.click();
于 2014-01-16T02:43:51.670 回答
0

这似乎对我有用。本质上,您必须在您的复选框周围找到由 prettyCheckable 创建的标签父级,并设置它以及输入:

$("#element").prop("checked", true).parent().find("a:first").addClass("checked");
于 2014-04-02T02:18:53.630 回答
-1

将“checked”属性设置为任何内容都应该如此处所示。

$('#rdTypeAdd').attr("checked","checked");
于 2013-08-25T07:22:46.523 回答