2013-07-31 3 views
1

J'ai un petit script, avec une fonction très directe. Si la case à cocher n'est pas cochée, si l'utilisateur a cliqué dessus, afficher un div sinon, masquer le div lorsque l'utilisateur clique dessus. Le script est (son intérieur un code PHP):jquery checkbox ne fonctionne pas

echo 
'<script> 
$(document).ready(function(){ 

if($("#chk_id'.$bank_name.'").is(":checked")) 
{ 


    $("#chk_id'.$bank_name.'").click(function(){ 
     $("#form_show'.$bank_name.'").hide(300); 
    }); 

} 
else 
{ 

    $("#chk_id'.$bank_name.'").click(function(){ 

    //alert("ddd"); 

    $("#form_show'.$bank_name.'").show(300); 
    }); 
} 
});  


</script>'; 

Mais le problème est bien que le spectacle div travaille, je suis incapable de cacher la div! Qu'est-ce qui ne va pas? librairie javascript: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

+1

Montrez-nous votre exemple dans JSFiddle – FSou1

+0

Et si vous pouviez ajouter votre co html de trop – MisterJ

Répondre

3

Essayez ceci:

$(document).ready(function(){ 
    $('body').on('click', "#chk_id'.$bank_name.'", function() { 
     if($("#chk_id'.$bank_name.'").is(":checked")) { 
      $("#form_show'.$bank_name.'").hide(300); 
     } else { 
      $("#form_show'.$bank_name.'").show(300); 
     } 
    }); 
}); 
+0

Thanx, a utilisé votre logique et fonctionne bien – Nitish

3

Je pense que votre fonction doit être quelque chose comme ceci:

function checkBankName(){ 
    if($("#chk_id'.$bank_name.'").is(":checked")) 
    { 
     $("#form_show'.$bank_name.'").show(300); 
    } 
    else 
    { 
     $("#form_show'.$bank_name.'").hide(300); 
    } 
} 

$(document).ready(function(){ 
    // first time 
    checkBankName(); 

    // on check 
    $("#chk_id'.$bank_name.'").click(function(){ 
     checkBankName(); 
    }); 
}); 
0

essayez ceci:

Demo

$("#chk_id").click(function(){ 
     if($('#chk_id:checked').length > 0){ 
      $('.bank_name').hide(300); 
     } 
     else{ 
      $('.bank_name').show(300); 
     } 
    }); 

J'ai deviné votre implémentation html. Vous n'avez pas besoin d'inclure le #form_show dans votre sélecteur.

Ou, vous pouvez faire quelque chose comme ça bascule à l'aide:

tioggle demo

// code to initialize state before click 

$("#chk_id").click(function(){  
    $('.bank_name').toggle(300);    
}); 

Hope this helps

0

Version simplifiée d'une autre réponse ici:

$(document).ready(function() { 
    $("#chk_id' . $bank_name . '").change(function() { 
     $("#form_show' . $bank_name . '")[this.checked ? 'show' : 'hide'](300); 
    }).change(); 
});