您好我使用一组复选框来过滤来自Feed的数据,基本上我将所有复选框设置为默认处于活动状态,如何阻止用户取消选中所有选项?我需要至少一个要检查。希望有人可以提供帮助。
我创建了jsfiddle
这是我的HTML:
<div class="pull-left" id="filter">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active" id="btnOne">
<input type="checkbox" name="filter"> One Selected
</label>
<label class="btn btn-primary active" id="btnTwo">
<input type="checkbox" name="filter"> Two Selected
</label>
<label class="btn btn-primary active" id="btnThree">
<input type="checkbox" name="filter"> Three Selected
</label>
<label class="btn btn-primary active" id="btnFour">
<input type="checkbox" name="filter"> Four Selected
</label>
</div>
</div>
答案 0 :(得分:2)
将此代码添加到javascript,Queue TTL
$(function() {
$(".btn.active").click(function(){
if($(this).hasClass('active')){
if($(".btn.active").length===1){
return false;
}
}
});
});
请注意,您没有更改复选框checked
属性,您正在使用带有active
类切换触发器行为的按钮。
答案 1 :(得分:0)
最好的选择是使用library(shiny)
library(shinydashboard)
jsfile <- "https://gist.githack.com/daattali/7519b627cb9a3c5cebcb/raw/91e8c041d8fe4010c01fe974c6a35d6dd465f92f/jstest.js"
runApp(shinyApp(
ui = dashboardPage(
header = dashboardHeader(),
sidebar = dashboardSidebar(),
body = dashboardBody(
tags$head(tags$script(src = jsfile))
)
),
server = function(input, output) {
}
))
代替radio buttons
。
我发现更改事件更可靠,我会阻止用户取消选中所有复选框,如下所示:
checkboxes
$(':checkbox[name=filter]').on('change', function() {
$(':checkbox[name=filter]:checked').length == 0
&& !this.checked
&& $(this).prop('checked', true);
});
$(function() {
$(':checkbox[name=filter]').on('change', function() {
$(':checkbox[name=filter]:checked').length == 0 && !this.checked && $(this).prop('checked', true);
});
});