一种只允许一次选中一个复选框的方法
我最初的想法是使用单选按钮 - 根据 cmets,您需要提供“取消选择”按钮的规定,这可以通过 JS 实现。
让我详细说明您将如何执行此操作,以及您将如何处理复选框:
--
单选按钮
你可以使用单选按钮——你必须这样做,所以如果你点击一个被“选中”的按钮,JQuery 会“取消选择”它:
How to check/uncheck radio button on click?
JSFiddle
#app/views/controller/your_view.html.erb
<table>
<tr>
<td><input type="radio" name="sex" value="male">Male</td>
<td><input type="radio" name="sex" value="female">Female</td>
</tr>
</table>
#app/assets/javascripts/application.js
$("tr").on("mousedown", ":radio", function(){
var $self = $(this);
if( $self.is(':checked') ){
var uncheck = function(){
setTimeout(function(){$self.removeAttr('checked');},0);
};
var unbind = function(){
$self.unbind('mouseup',up);
};
var up = function(){
uncheck();
unbind();
};
$self.bind('mouseup',up);
$self.one('mouseout', unbind);
}
});
--
复选框
JSFiddle
checkbox 可以用 JS 来“取消选中”——你要做的就是用 JS 捕捉“check”动作,然后“取消选中”该行对应的复选框。这将确保您只能选择一个复选框,同时提供“无”选择:
#Table same setup as Tiago Farias
#app/assets/javascripts/application.js
$("tr").on("change", ":checkbox", function(){
if( $(this).is(":checked") ) {
$(this).parent().parent().find(":checkbox").not($(this)).attr('checked', false);
}
});