2009-07-13 12 views
1

J'ai ajouté le code followng pour désactiver le menu déroulant sur décochant la case à cocher dans jQuery, mais la case à cocher ne conserve pas la valeur:Comment conserver l'état de case à cocher dans 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); 
    } 
    ) 
}); 

Où ai-je mal tourner?

Répondre

0

Je ne suis pas sûr, mais il y a une sorte de problème en utilisant checkbox et toggle(). Essayez ceci:

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

Dans votre code, pourquoi modifiez-vous l'état de la case à cocher dans votre méthode de basculement? Ne reviendrait-il pas à l'état?

Essayez quelque chose comme,

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

Vous pouvez utiliser l'événement « changement » au lieu de l'événement « clic » ou « bascule », cela va résoudre votre problème.

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