【发布时间】:2018-01-30 00:03:30
【问题描述】:
我有这个 jquery,我希望我的复选框像单选按钮一样,我怎样才能做到这一点?
jQuery 脚本:
$('[data-toggle="wizard-checkbox"]').click(function(){
if( $(this).hasClass('active')){
$(this).removeClass('active');
$(this).find('[type="checkbox"]').removeAttr('checked');
} else {
$(this).addClass('active');
$(this).find('[type="checkbox"]').attr('checked','true');
}
});
HTML:
<div class="choice" data-toggle="wizard-checkbox" rel="tooltip" id="sectiuni" title="Sections">
<input type="checkbox" id="1" name="sectiuni" value="1">
<input type="checkbox" id="2" name="sectiuni" value="2">
<input type="checkbox" id="3" name="sectiuni" value="3">
</div>
更新:
我有图像而不是框,因此建议的答案不适用于我当前的代码。下面列出了完整的html代码
下面是完整的 HTML
<div class="tab-pane" id="sectiune">
<h4 class="info-text">Va rugam sa alegeti sectiunea pentru momentul dvs.</h4>
<div class="row">
<div class="form-group">
<div class="col-sm-12 col-sm-offset" >
<div class="col-sm-3 col-sm-offset">
<div class="choice" data-toggle="wizard-checkbox" rel="tooltip" id="sectiuni" title="Solo">
<input type="checkbox" id="solo" name="sectiuni" value="Solo">
<div class="icon">
<img src="assets/img/icons/solo.svg"/>
</div>
<h6>Solo</h6>
</div>
</div>
<div class="col-sm-3 col-sm-offset">
<div class="choice" data-toggle="wizard-checkbox" rel="tooltip" id="sectiuni" title="Duo/Trio/Quartet">
<input type="checkbox" id="duo" name="sectiuni" value="Duo/Trio/Quartet">
<div class="icon">
<img style="width: 48px;" src="assets/img/icons/duotrio.svg"/>
</div>
<h6>Duo/Trio/Quartet</h6>
</div>
</div>
<div class="col-sm-3 col-sm-offset">
<div class="choice" data-toggle="wizard-checkbox" rel="tooltip" id="sectiuni" title="Grupuri 5-12 dansatori">
<input type="checkbox" id="grupuri" name="sectiuni" value="Grupuri">
<div class="icon">
<img style="width: 48px;" src="assets/img/icons/grupuri.png"/>
</div>
<h6>Grupuri</h6>
</div>
</div>
<div class="col-sm-3">
<div class="choice" data-toggle="wizard-checkbox" rel="tooltip" id="sectiuni" title="Formaţii peste 13 dansatori.">
<input type="checkbox" id="formatii" name="sectiuni" value="Formatii">
<div class="icon">
<img style="width: 48px;" src="assets/img/icons/formatii.png"/>
</div>
<h6>Formatii</h6>
</div>
</div>
</div>
</div>
</div>
</div>
更新成功:
我已经成功了! 请看下面的代码:
$('[data-toggle="wizard-checkbox"]').click(function(){
wizard = $(this).closest('.wizard-card');
wizard.find('[data-toggle="wizard-checkbox"]').removeClass('active');
$(wizard).find('[type="checkbox"]').removeAttr('checked');
$(this).find('[type="checkbox"]').prop('checked','true');
$(this).addClass('active');
});
【问题讨论】:
-
如果你想让复选框表现得像复选框,为什么不直接使用单选按钮呢?它们甚至具有相同的
name属性。从字面上看,您需要做的就是将type更改为radio并删除您的 JS 代码以使其正常工作。 -
@Alex,虽然我很欣赏你更新的代码,但你已经提出了一个完全不同的问题。我建议删除编辑,投票支持下面的答案(下面的答案确实回答了您的原始问题,然后创建一个新问题。游戏开始后您无法移动球门柱:-)。最后,您的标记包含重复的 ID,这将导致各种问题(ID 必须是唯一的)。请解决您可以解决的问题并发布一个新问题。