选中主复选框时如何使复选框可见?

时间:2014-05-15 06:41:39

标签: javascript php jquery checkbox

早上好,伙计们, 我在php中创建了3个复选框。我想用作控制器的那个

<p>
    <?php  $creates = array('name'=> 'single_obs_value','class' => 'singleobsyes','value'=> '1','style'=>' float: left; margin-right: 2px;'); ?>
    <?=form_label('Single Observation : ');?>
    <?=form_checkbox($creates);?>
    <br>
</p>

另外两个是从数据库数组变量中引入的。

<p>
    <?php   foreach($obsnames as $cp){  ?>
        <?php  $create = array('name'=> 'cms_permissions[]','class' => 'singleobs','value'=> $cp->id,'style'=>' float: left; margin-right: 10px;'); ?>
        <span style="width:200px; float:left">
            <?=form_checkbox($create ).' '.form_label($cp->field_name);?>
        </span>
    <?php }  ?>
</p>

如何在页面加载时首先使数据库引入的两个不可见。然后,当勾选控制器复选框时,再次显示两个复选框。如果可能的话,使用一个jquery函数,它使用控制器类的复选框。

$('#singleobsyes').change(function(){

而不是

$('input[type="checkbox"']

当我在页面上使用其他复选框时,我相信这可能会导致一些冲突。

4 个答案:

答案 0 :(得分:1)

试试这个

$(document).ready(function(){
  $('input[type="checkbox"]').not('.singleobsyes').hide();// hide all checkboxes other than controller

  $('.singleobsyes').change(function(){

    if($(this).is(':checked') 
        $('input[type="checkbox"]').not('.singleobsyes').show();    
    else
       $('input[type="checkbox"]').not('.singleobsyes').hide();
  });

});

答案 1 :(得分:1)

更新:请参阅此fiddle

您也可以使用css选择器

来执行此操作

<强> HTML

<input type="checkbox" class="singleobsyes" name="a"/>check to show others
<input type="checkbox" class="singleobs" name="b"/>
<input type="checkbox" class="singleobs" name="c"/>

<强> CSS

.singleobs{
    display:none;
}
.singleobsyes:checked ~ .singleobs{
    display:block !important;
}

fiddle

你也可以使用包装

fiddle v2

答案 2 :(得分:0)

要使复选框不可见,您可以style="display:none"

现在,您可以在“主要”复选框中添加onchange="showem();"属性。

function showem()
{
$('#checkbox1id').toggle();
$('#checkbox2id').toggle();
}

编辑:将show更改为toogle

答案 3 :(得分:0)

你可以这样简单,

$(document).ready(function(){

 $('input[type="checkbox"]').not('.singleobsyes').hide();

     $('.singleobsyes').on("change", function(){  
        $('input[type="checkbox"]').not('.singleobsyes').toggle();            
     });   
});