复选框显示div

时间:2017-02-24 12:05:33

标签: jquery

我可以帮忙吗?我更多的是在Jquery的初级阶段,这让我疯狂。

我希望打开& close div class =" div1"当我检查&取消选中输入类="标记"复选框。问题是div class =" div1"并输入class =" mark"是动态的,取决于我从数据库中获得什么。

下面的jquery是我尝试过的,但它无效。我以为.next应该有效。无论我生成多少输入类=标记,我都可以显示,隐藏div class =" div1"接下来呢?



$(document).ready(function(){
$(".div1").hide();
 $(".mark").click(function() {
     $(this).next('.div1').toggle();
 });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>


<div class="panel panel-default">
<div class="panel-heading"><?php echo "$code - $name"; ?></div>
<div class="panel-body">

<label>MARKETING?</label> 
<input class="mark" name="mark[]" type="checkbox" <?php if ($mark[$count] == 'Y') { ?> checked="checked" <?php } ?>/>

<div class="div1">

<label>Product + Price</label> 
<input name="mark1[]" type="checkbox" <?php if ($mark1[$count] == 'Y') { ?> checked="checked" <?php } ?>/> 

<textarea class="form-control" name="markbox1[]" cols="50" rows="5"><?php echo htmlspecialchars($markbox1[$count]); ?></textarea>

<label>Plus 10</label> 
<input name="mark2[]" type="checkbox" <?php if ($mark2[$count] == 'Y') { ?> checked="checked" <?php } ?>/>

<textarea class="form-control" name="markbox2[]" cols="50" rows="5"><?php echo htmlspecialchars($markbox2[$count]); ?></textarea>

<label>Data</label> 
<input name="mark3[]" type="checkbox" <?php if ($mark3[$count] == 'Y') { ?> checked="checked" <?php } ?>/> 

<textarea class="form-control" name="markbox3[]" cols="50" rows="5"><?php echo htmlspecialchars($markbox3[$count]); ?></textarea>

<label>Social Media</label> 
<input name="mark4[]" type="checkbox" <?php if ($mark4[$count] == 'Y') { ?> checked="checked" <?php } ?> />

<textarea class="form-control" name="markbox4[]" cols="50" rows="5"><?php echo htmlspecialchars($markbox4[$count]); ?></textarea>

</div>

</div>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题吗?在这种情况下,我通常使用show()而不是toggle()。如果取消选中该复选框,还会添加if语句。干杯

$(document).ready(function() {
    $(".div1").hide();
    $(".mark").click(function() {
         if (".mark").is(":checked")) {
             $(this).next(".div1").show();
         } else {
             $(this).next(".div1").hide();
         };
    });
});