html 复选框互斥,如何使一组复选框互斥?

我希望this可以使用

HTML的

A |

B |

C

1 |

2 |

3

的JavaScript

// include jQuery library

var enforeMutualExcludedCheckBox = function(group){

return function() {

var isChecked= $(this).prop("checked");

$(group).prop("checked", false);

$(this).prop("checked", isChecked);

}

};

$(".alpha").click(enforeMutualExcludedCheckBox(".alpha"));

$(".num").click(enforeMutualExcludedCheckBox(".num"));

好吧,单选按钮应该是在相互排除的选项中使用的单选按钮,尽管我遇到了一个场景,其中客户端喜欢零到一个选定的项目,并且javaScript的复选框运行良好。

更新

看看我的回答,我意识到两次引用css类是多余的。我更新了我的代码以将其转换为jquery插件,并创建了两个解决方案,具体取决于首选项

获取检查相互排除的所有复选框

$.fn.mutuallyExcludedCheckBoxes = function(){

var $checkboxes = this; // refers to selected checkboxes

$checkboxes.click(function() {

var $this = $(this),

isChecked = $this.prop("checked");

$checkboxes.prop("checked", false);

$this.prop("checked", isChecked);

});

};

// more elegant, just invoke the plugin

$("[name=alpha]").mutuallyExcludedCheckBoxes();

$("[name=num]").mutuallyExcludedCheckBoxes();

HTML

A |

B |

C

1 |

2 |

3

将包含元素中所有相互排除的复选框分组

的JavaScript

$.fn.mutuallyExcludedCheckBoxes = function(){

var $checkboxes = this.find("input[type=checkbox]");

$checkboxes.click(function() {

var $this = $(this),

isChecked = $this.prop("checked");

$checkboxes.prop("checked", false);

$this.prop("checked", isChecked);

});

};

// select the containing element, then trigger the plugin

// to set all checkboxes in the containing element mutually

// excluded

$(".alpha").mutuallyExcludedCheckBoxes();

$(".num").mutuallyExcludedCheckBoxes();

HTML

A |

B |

C

1 |

2 |

3

享受: - )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要了解复选框互斥的原理。在同一个复选框组中,只能有一个复选框被选中,其他复选框都应该处于未选中状态。 在Java中,可以使用JCheckBox类来创建复选框,并使用ButtonGroup类来将多个复选框组合在一起形成一个复选框组。 如果需要在复选框被选中时执行一些操作,可以添加ItemListener监听器。 如果需要实现复选框互斥,可以在ItemListener中使用setValueAt方法重新设置复选框的选中状态。 以下是一个示例代码,实现了复选框互斥的功能: ```java import javax.swing.*; import javax.swing.event.*; import javax.swing.table.*; class CheckBoxListener implements ItemListener { private JTable table; private TableModel model; public CheckBoxListener(JTable table) { this.table = table; this.model = table.getModel(); } public void itemStateChanged(ItemEvent e) { int row = table.getEditingRow(); int col = table.getEditingColumn(); if (row >= 0 && col >= 0) { Boolean value = (Boolean) model.getValueAt(row, col); value = !value; model.setValueAt(value, row, col); // 设置互斥 for (int i = 0; i < model.getRowCount(); i++) { if (i != row) { model.setValueAt(false, i, col); } } } } } public class CheckBoxTable extends JFrame { private JTable table; private DefaultTableModel model; private ButtonGroup group; private CheckBoxListener listener; public CheckBoxTable() { model = new DefaultTableModel(new Object[][]{ {"Java", false}, {"Python", false}, {"C++", false}, {"JavaScript", false}, }, new Object[]{"语言", "选中"}); table = new JTable(model); table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(new JCheckBox())); group = new ButtonGroup(); listener = new CheckBoxListener(table); for (int i = 0; i < model.getRowCount(); i++) { JCheckBox checkBox = new JCheckBox(); checkBox.addItemListener(listener); group.add(checkBox); table.setValueAt(checkBox, i, 1); } add(new JScrollPane(table)); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new CheckBoxTable(); } } ``` 在这个示例中,通过重写ItemListener中的itemStateChanged方法,使用setValueAt方法重新设置复选框的选中状态,并设置其他复选框的选中状态为false,从而实现了复选框互斥的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值