我用Twitter Bootstrap制作了一组复选框。现在我想做一个“全选”或“取消全选”按钮。我怎么能用JS函数做到这一点?
Twitter Bootstrap文档说使用$()。button('toggle')但它不起作用。
这是我的代码段:
<div class="control-group">
<div class="controls">
<div class="input">
<div class="btn-group">
<label class="btn btn-toggle" for="colors-1-toggle-0">
<input type="checkbox" id="colors-1-toggle-0" name="colors-1[]" value="color_c" />C
</label>
<label class="btn btn-toggle" for="colors-1-toggle-1">
<input type="checkbox" id="colors-1-toggle-1" name="colors-1[]" value="color_m" />M
</label>
<label class="btn btn-toggle" for="colors-1-toggle-2">
<input type="checkbox" id="colors-1-toggle-2" name="colors-1[]" value="color_y" />Y
</label>
<label class="btn btn-toggle" for="colors-1-toggle-3">
<input type="checkbox" id="colors-1-toggle-3" name="colors-1[]" value="color_k" />K
</label>
</div>
</div>
</div></div>
答案 0 :(得分:14)
从技术上讲,Twitter Bootstrap Buttons插件可以与<button>
元素配合使用,让它们表现为,好像它们是无线电或复选框输入一样。
此外,$().button('toggle')
只是伪代码,实际上是与选择器一起使用,例如$('.btn-toggle').button('toggle')
。但是,您的示例有点不合标准,因为您已将用于按钮的类分配给<label>
元素。
无论如何,尽管如此,如果您只想将所有输入框设置为true,您可以使用以下内容:
$('.btn-group input[type="checkbox"]').prop('checked', true);
如果你想用<button>
元素做,那就是这样的:
然而,这会丢弃您正在使用的一堆输入数据。
答案 1 :(得分:8)
<button id="toggle-colors" class="btn btn-info">Toggle</button>
<script>
$('#toggle-colors').click(function() {
$('.btn-group input[name^="colors"]').each(function(){
// toggle checkbox
$(this).prop('checked',!$(this).prop('checked'));
// toggle class
$(this).parents('label').toggleClass('active');
});
});
</script>
我没有像Twitter Bootstrap推荐那样使用按钮标签,因为它不会按POST发送值。
答案 2 :(得分:3)
我找到了一种没有JS
的方法http://codepen.io/ibanez182/pen/WxKABq/
<div class="form-group">
<div class="checkbox">
<label data-toggle="collapse" data-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
<input type="checkbox"/> A checkbox
</label>
</div>
</div>
<div id="collapseOne" aria-expanded="false" class="collapse">
<div class="well">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Saepe ut molestias eius, nam neque esse eos modi corrupti harum fugit, hic recusandae praesentium, minima ipsa eligendi architecto at! Culpa, explicabo.</div>
</div>