2013-07-31 4 views
1

У меня есть небольшой скрипт с очень прямой функцией. Если флажок не установлен, если пользователь щелкнул по нему, он отображает div, иначе скрывает div, когда пользователь нажимает на него. Сценарий (его внутри PHP кода):jquery checkbox check not working

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

Но проблема в том, хотя шоу ДИВ работает, я не могу скрыть DIV! Что не так? Javascript библиотека: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

+1

показать нам свои пример в JSFiddle – FSou1

+0

И если бы вы могли добавить свой html co de – MisterJ

ответ

3

Попробуйте это:

$(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, использовал свою логику и прекрасно работал – Nitish

3

Я думаю, что ваша функция должна быть что-то вроде этого:

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

попробовать это:

Demo

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

Я догадался о вашей реализации html. Возможно, вам не нужно включать #form_show в ваш селектор.

Или вы могли бы сделать что-то вроде этого с помощью переключателя:

tioggle demo

// code to initialize state before click 

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

Надеется, что это помогает

0

Упрощенной версии другого ответа здесь:

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