javascript - 带 Optgroups 的多选框 : Select one per group

标签 javascript jquery html multi-select drop-down-menu

我有一个带有 multiple 的选择框属性集。我也在使用 <optgroup>标签以在我的选择框中分隔类别。我正在寻找一种方法,使用 javascript 或 jQuery,让每个组中的各种选项与“单选按钮逻辑”而不是“复选框逻辑”一起运行。例如:

<optgroup label="cat1">
    <option>item 1.1</option>
    <option>item 1.2</option>
</optgroup>
<optgroup label="cat2">
    <option>item 2.1</option>
    <option>item 2.2</option>
</optgroup>
  1. 用户选择 item 1.1在列表中。 item 1.1按预期选择。
  2. 用户选择 item 2.1在列表中。现在都item 1.1item 2.1被选中。
  3. 用户选择 item 1.2在列表中。现在item 1.1被取消选择,而 item 2.1item 1.2都被选中。

这有意义吗?提前致谢!

最佳答案

$('#select-box-id optgroup option').click(function() {
    // only affects options contained within the same optgroup
    // and doesn't include this
    $(this).siblings().prop('selected', false);
});​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

尽管如此,说实话,如果您想要“单选按钮逻辑”,您可能会考虑不使用多选框。无论如何,多个选择框的可用性是一种痛苦(人们必须按住 Ctrl 键并单击才能选择多个选项)。考虑使用单选按钮,或为每个组使用单选框。两者都更难搞砸。而且它们无需 JS 即可工作,这几乎总是一个加号。

关于javascript - 带 Optgroups 的多选框 : Select one per group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9984849/

相关文章:

html - 无法在手机上滚动

html - Bootstrap 4 自定义列表组折叠插入符号功能不正确

javascript - 如何在 jquery 中将 2 个按钮合并为 1 个按钮

javascript - 修改现有代码以接受多个参数

javascript - 人工制品出现在网站 : CSS issue

javascript - jquery:将 4 个点排序为(左上、右上、右下、左下)

Jquery Css 从 div 获取旧位置?

javascript - 带有附加下拉菜单的 Angular 菜单项根本不显示

javascript - 如何在 overflow auto 中提出 div 元素?

javascript - 如何调用这个JS函数并传递参数?