【发布时间】:2019-05-09 09:06:51
【问题描述】:
function selectOpenField() {
$("input[name='vrije_velden']").on('click', function() {
var $box = $(this);
if ($box.is(":checked")) {
var group = "input:checkbox[name='" + $box.attr("name") + "']";
$(group).prop("checked", false);
$box.prop("checked", true);
var val = $(this).val();
$("input[name='vrije_velden']").each(function(key, value){
var $thisValue = $(value).val();
if ($thisValue === val) {
$('#'+val).slideDown();
} else {
$(group).slideUp();
}
});
} else {
$box.prop("checked", false);
$(group).slideUp();
}
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="checkbox"
value="checkboxHolder" name="vrije_velden">
<label class="custom-control-label" for="checkbox">Checkbox</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="radio"
value="radioBoxHolder" name="vrije_velden">
<label class="custom-control-label" for="radio">Radio</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="input"
value="inputBoxHolder" name="vrije_velden">
<label class="custom-control-label" for="input">Input</label>
</div>
我创建了 3 个复选框,但是只能选中一个复选框而不是多个复选框。都很好。
我的问题
我根据已选中的复选框的值显示某些 div,这是可行的,但是当我单击另一个复选框以显示 div B 时,div A 不会消失。第二个问题是,当我单击一个复选框并再次取消选中该复选框时,该 div 也仍然存在。
这部分是我最近尝试的一段代码
var val = $(this).val();
$("input[name='vrije_velden']").each(function(key, value){
var $thisValue = $(value).val();
if ($thisValue === val) {
$('#'+val).slideDown();
} else {
$(group).slideUp();
}
});
我希望达到的目标
- 3 个复选框,只能选中一个(单选按钮类型),但用户也应该能够取消选中(这就是我不使用单选按钮的原因)
- 当我单击复选框 A 时,应该显示 div A,当我单击复选框 B 时,复选框 A 变为未选中状态,并且 div A 回到
display: none,但 div B 显示(等等)复选框的值也是 div 的 ID。 - 当我点击复选框 A 时,应该显示 div A,但是当我取消选中复选框 A 时,div A 应该再次为
display: none。
提前致谢。
【问题讨论】:
-
问题:那些 div 会在哪里?在这些复选框旁边,还是在它们下方或远离它们?根据它可以有多种解决方案
-
它们位于所有复选框的下方。所以在你在我的帖子中看到的所有 HTML 代码下面。
标签: javascript jquery html