如何在jQuery中保留checkbox状态

时间:2009-07-13 10:11:21

标签: jquery

我添加了以下代码以禁用取消选中jQuery中的复选框的下拉列表,但复选框未保留值:

$(document).ready(function(){
    //on check of the checkbox,the dropdown is enabled or disabled.
    $("[id$=chkCashSettlementType]").toggle(
    function()
    {
        $("[id$=ddlSettlementCurrency]").attr('disabled',$("[id$=chkCashSettlementType]").not(':checked'));
        $("[id$=chkCashSettlementType]").attr('checked',false);
    },
    function()
    {
        $("[id$=ddlSettlementCurrency]").removeAttr('disabled');
        $("[id$=chkCashSettlementType]").attr('checked',true);
    }
    )
});

我哪里出错了?

3 个答案:

答案 0 :(得分:0)

我不确定,但是使用checkbox和toggle()会出现问题。试试这个:

$(document).ready(function()
{
    //on check of the checkbox,the dropdown is enabled or disabled.
    $("[id$=chkCashSettlementType]").click(function()
    {
        if($(this).attr('checked'))
        {
            $("[id$=ddlSettlementCurrency]").attr('disabled','');
        }
        else
        {
            $("[id$=ddlSettlementCurrency]").attr('disabled', 'disabled');
        }
    });
});

答案 1 :(得分:0)

在您的代码中,为什么要修改切换方法中的复选框状态?难道不会让状态恢复吗?

尝试类似的事情,

$(document).ready(function()
{
    $("[id$=chkCashSettlementType]")
        .click(function()
               {
                    //'this' refers to your checkbox. 
                    $("[id$=ddlSettlementCurrency]").attr('disabled', $(this).checked);
               }
        );
});

答案 2 :(得分:0)

您可以使用“更改”事件代替“点击”或“切换”事件,这样可以解决您的问题。

$("[id$=chkCashSettlementType]").change( 
function() 
{
 //.....
}