【发布时间】:2016-10-31 14:31:51
【问题描述】:
好的,我在使用复选框时遇到了一个非常奇怪的问题,该复选框使用引导程序折叠隐藏的 div。
如果我在复选框输入属性部分有 data-toggle="collapse",则 Div Collapses 但要求填写其中的每一个输入。
如果 data-toggle="collapse" 不存在,隐藏的 div 不会折叠,如果选中复选框,则需要输入输入,如果未选中,我可以在没有输入的情况下提交表单进入。 (所需的操作,但选中复选框时 div 不会隐藏或显示)
如何在未选中/选中复选框时隐藏/显示 div 并且仅在选中复选框时才需要输入?
我将其用作 HTML:
<div class="col-md-1">
<input type="checkbox" onclick="ChangeShip()" href="#moreabout" data-toggle="collapse" aria-expanded="false" aria-controls="moreabout" class="form-control" id="chShipAdd" name="chShipAdd" value="no">
</div>
<label for="chShipAdd" class="col-md-3 control-label">Shipping Information?</label>
<div id="shipadddiv" style="visibility: hidden;">
<div class="collapse" id="moreabout" >
<div class="form-group">
<div class="col-md-12">
<br>
<input id="sStreet" name="sStreet" type="text" placeholder="Street Name (required)" class="form-control shipClass" required>
</div>
</div>
<div class="form-group">
<div class="col-md-4">
<input id="sCity" name="sCity" type="text" placeholder="City (required)" required class="form-control shipClass">
</div>
<div class="col-md-4">
<input id="sState" name="sState" type="text" placeholder="State (required)" required class="form-control shipClass">
</div>
<div class="hidden-lg hidden-md"> </div>
<div class="col-md-4">
<input id="sZipcode" name="sZipcode" type="text" placeholder="Zip (required)" required class="form-control shipClass">
</div>
</div>
</div>
</div>
和javascript:
function ChangeShip() {
if (!(document.getElementById('chShipAdd').checked)) {
document.getElementById('shipadddiv').style.visibility="hidden";
$(".shipClass").prop("disabled",true);
}
else {
document.getElementById('shipadddiv').style.visibility="visible";
$(".shipClass").prop("disabled",false);
}
}
任何可行的解决方案都可以接受。我整天都在努力做这个简单的动作。我已经尝试过 .prop .attribute .setAttribute .removeAttribute 等等。
有什么建议吗?
【问题讨论】:
-
你能简化那个问题/代码,并将代码放在一个片段中吗?那是一堵巨大的文字墙。
-
如果我从复选框中删除 data-toggle="collapse" - 'disabled' 属性被设置为隐藏 div 中的每个输入,但 div 不会折叠。如果我添加 data-toggle="collapse" 隐藏的 div 会显示和隐藏自己,但无论它是显示还是隐藏,都需要所有输入。此外,复选框不会显示为选中或未选中
标签: javascript jquery html input twitter-bootstrap-3