Layui tree组件如何设置默认选中的节点

雨芳酱_9505

雨芳酱_9505

2026-07-27

845人浏览

原创

Layui树形组件中checked:true仅对叶子节点生效,父节点设此值会连带勾选子节点;需确保节点有唯一id且checked为布尔值;推荐用tree.setChecked()初始化以规避自动联动。

data 中直接设 checked: true 只对叶子节点有效

最直观的方式是在传入 tree.render() 的 data 数组里,给目标节点加 checked: true。layui 会识别并渲染勾选状态,但要注意:如果该节点有 children,它会被视为父节点,设 checked: true 会导致所有子节点也被连带勾选——这是默认行为,不是 bug。

  • 仅当节点无 children(即叶子节点)时,checked: true 才真正只影响它自己
  • 每个节点必须有唯一 id 字段,否则后续调用 tree.setChecked() 或联动逻辑会失败
  • checked 必须是布尔值 true/false,写成字符串 "true" 无效
  • 后端返回字段名如果是 is_checked 或 selected,需前端映射为 checked,否则 Layui 不认

tree.setChecked() 是更可控的初始化方式

渲染完成后调用 tree.setChecked(),能绕过父子自动勾选问题,适合根据权限 ID 列表、或只勾选叶子节点等复杂场景。

  • 必须在 tree.render() 中指定 id 参数(如 id: 'treeDemo'),否则 tree.setChecked('treeDemo', [...]) 会报 "Cannot read properties of undefined (reading 'getChecked')"
  • 第二个参数是 ID 数组,例如 [101, 102],即使这些 ID 对应的是父节点,也只勾选它们本身(不自动展开/勾选子节点)
  • 传空数组 [] 可清空全部勾选,适合重置表单
  • 该方法不会触发 oncheck 回调,业务逻辑需手动同步

遇到 checked 不生效?检查是否用了 treetable 或自定义封装

部分定制版本(尤其是 treetable)不依赖原始 checked 字段,而是读取内部标记 LAY_CHECKED。

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
  • 若发现数据里写了 checked: true 但复选框没勾上,先确认是否用了 treetable
  • 需要在 tree.render() 前,手动补全 LAY_CHECKED: 'true'(注意是字符串,不是布尔值)
  • 同时检查 checkName 配置,比如 treetable 默认可能读 checked,但若配置了 checkName: 'selected',就得把字段名改成 selected

父节点默认展开和默认勾选是两回事

别混淆 spread: true 和 checked: true。前者控制节点是否默认展开(视觉上显示子节点),后者控制是否默认勾选(复选框状态)。

  • spread: true 必须写在节点数据里,且只对有 children 的节点生效;写成字符串 "true" 无效
  • 手风琴模式(accordion: true)下,多个 spread: true 的同级节点,只有第一个会真展开
  • 如果想“默认展开 + 默认勾选”,两个字段都要显式设置,且各自独立生效
真正容易被忽略的是:Layui tree 的父子勾选联动是硬编码逻辑,无法关闭。所谓“禁用父节点勾选子节点”,本质是修改源码或换用其他组件——如果你没改过 layui.tree.js 里的 checkChild 相关逻辑,就别指望靠配置绕过这个限制。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2603

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5643

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6630

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6318

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

903

5

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 13万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11.2万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习