【发布时间】:2018-12-31 07:45:40
【问题描述】:
尝试:我正在尝试将选中和未选中的复选框映射到按钮显示/隐藏。此外,当我单击映射按钮时切换选中/取消选中复选框。
问题:当我单击其中一个显示的按钮时,所有选中的框都未选中,因此隐藏了所有显示的按钮。
用户界面示例:BestBuy's products filtering feature
我们使用的是 Angular.js,所以如果有更简单的插件可以推荐,那就太好了。
演示:jsFiddle
HTML
<input type="checkbox" value="1GB">1GB<br/>
<input type="checkbox" value="2GB">2GB<br/>
<input type="checkbox" value="4GB">4GB<br/>
<br /><br />
<table class="someclass" border="0" cellpadding="0" cellspacing="0" summary="bla">
<button type="submit" value="1GB">1GB</button>
<button type="submit" value="2GB">2GB</button>
<button type="submit" value="3GB">4GB</button>
jQuery
$("button").hide();
$(":checkbox").change(function() {
var checkedValues = $(":checkbox:checked").map(function() {
return this.value;
}).get();
$("button").hide();
for (var i = 0; i < checkedValues.length; i++) {
$("button:contains('" + checkedValues[i] + "')").show();
}
});
$("button").each(function() {
$(this).click(function() {
var checkedValues = $(":checkbox:checked").map(function() {
return this.value;
}).get();
$(":checkbox").prop("checked", false);
for (var i = 0; i < checkedValues.length; i++) {
$(":checkbox").prop("checked", false);
$("button:contains('" + checkedValues[i] + "')").hide();
}
})
});
【问题讨论】:
标签: jquery angularjs button checkbox two-way-binding