·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

分类信息的checkbox如何做互斥选项?

153 2
发表于 2023-4-1 08:33:39 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
分类信息的checkbox如何做互斥选项? 分类,分类信息,信息,checkbox,如何
如图,希望达到的功能是:选择最后一项后,前面的所有选项都无法选择。
我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

独家记忆Lv.8 发表于 2023-4-1 08:34:25 | 查看全部
多选一直接用radio,如果非要用checkbox的话需要写js
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 22:18:56 | 查看全部
要实现分类信息中的 `checkbox` 互斥选项功能,即选择最后一项后,前面的所有选项都无法选择,可以通过 JavaScript 来实现。以下是一个简单的实现思路:

### 1. HTML 结构
假设你的分类信息中有多个 `checkbox`,最后一个 `checkbox` 的 `id` 为 `lastOption`,前面的 `checkbox` 的 `class` 为 `otherOptions`。

  1. <input type="checkbox" class="otherOptions" name="option[]" value="1"> 选项1
  2. <input type="checkbox" class="otherOptions" name="option[]" value="2"> 选项2
  3. <input type="checkbox" class="otherOptions" name="option[]" value="3"> 选项3
  4. <input type="checkbox" id="lastOption" name="option[]" value="4"> 最后选项
复制代码


### 2. JavaScript 实现
使用 JavaScript 监听最后一个 `checkbox` 的点击事件,当它被选中时,禁用前面的所有 `checkbox`。

  1. document.getElementById('lastOption').addEventListener('change', function() {
  2.     var otherOptions = document.querySelectorAll('.otherOptions');
  3.     if (this.checked) {
  4.         otherOptions.forEach(function(option) {
  5.             option.disabled = true;
  6.         });
  7.     } else {
  8.         otherOptions.forEach(function(option) {
  9.             option.disabled = false;
  10.         });
  11.     }
  12. });
复制代码


### 3. 解释
- `document.getElementById('lastOption')`:获取最后一个 `checkbox` 元素。
- `addEventListener('change', function() {...})`:监听 `change` 事件,当 `checkbox` 的状态发生变化时触发。
- `document.querySelectorAll('.otherOptions')`:获取所有前面的 `checkbox` 元素。
- `option.disabled = true;`:禁用前面的 `checkbox`。
- `option.disabled = false;`:启用前面的 `checkbox`。

### 4. 完整代码
将上述 HTML 和 JavaScript 代码整合到一起:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>互斥选项示例</title>
  6. </head>
  7. <body>
  8.     <input type="checkbox" class="otherOptions" name="option[]" value="1"> 选项1
  9.     <input type="checkbox" class="otherOptions" name="option[]" value="2"> 选项2
  10.     <input type="checkbox" class="otherOptions" name="option[]" value="3"> 选项3
  11.     <input type="checkbox" id="lastOption" name="option[]" value="4"> 最后选项

  12.     <script>
  13.         document.getElementById('lastOption').addEventListener('change', function() {
  14.             var otherOptions = document.querySelectorAll('.otherOptions');
  15.             if (this.checked) {
  16.                 otherOptions.forEach(function(option) {
  17.                     option.disabled = true;
  18.                 });
  19.             } else {
  20.                 otherOptions.forEach(function(option) {
  21.                     option.disabled = false;
  22.                 });
  23.             }
  24.         });
  25.     </script>
  26. </body>
  27. </html>
复制代码


### 5. 测试
- 打开页面后,尝试选择前面的 `checkbox`,它们应该可以正常选择。
- 选择最后一个 `checkbox` 后,前面的 `checkbox` 应该被禁用,无法选择。
- 取消选择最后一个 `checkbox` 后,前面的 `checkbox` 应该恢复可用状态。

### 6. 注意事项
- 如果你在 Discuz! 模板中使用此功能,请确保将 JavaScript 代码放在模板的适当位置,或者通过外部 JavaScript 文件引入。
- 如果页面中有多个类似的互斥选项组,请确保每个组的 `id` 和 `class` 是唯一的,避免冲突。

通过这种方式,你可以轻松实现分类信息中 `checkbox` 的互斥选项功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.225.92.18,GMT+8, 2025-4-11 03:40 , Processed in 0.279277 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表