layui表单中的checkbox怎么获取选中的值

胖磊同学_1093

胖磊同学_1093

2026-09-18

948人浏览

原创

layui checkbox 的值必须用 form.val() 获取最稳妥,它会自动聚合同 name 的所有 checkbox 为数组;需确保表单有 lay-filter、name 一致且含 value,并在 form.render('checkbox') 后调用。

layui表单中的checkbox怎么获取选中的值

layui checkbox 的值怎么取?直接用 form.val() 最稳

layui 表单里的 checkbox 不像单选或输入框那样能直接用 document.getElementById 拿 value,必须走 layui 的表单模块解析逻辑。否则你拿到的永远是第一个 checkbox 的原始 checked 状态,不是“用户最终勾了哪几个”。form.val() 是唯一推荐方式,它会自动聚合同 name 的所有 checkbox 为数组。

  • 确保 checkbox 的 name 属性一致(比如 name="roles"),且每个都有 value
  • 必须在 form.render('checkbox') 之后调用(如果动态插入过 checkbox)
  • form.val('yourFormFilter') 返回的是一个对象,key 是 name,value 是数组(全未选时为空数组)

为什么 document.querySelectorAll('input[name="xxx"]:checked') 不可靠?

因为 layui 的 checkbox 实际渲染后,原始 input 被隐藏,真正响应点击的是外层的伪元素(.layui-form-checkbox)。原生 DOM 查询可能拿不到实时状态,尤其在使用 form.on('checkbox(filterName)') 动态切换后,DOM 的 checked 属性未必同步更新。

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

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

下载
  • 只适合调试查看,不能用于业务逻辑取值
  • 在 IE 或旧版浏览器中容易返回空 NodeList
  • 无法区分“用户取消勾选”和“初始就没勾选”的语义差异

监听 checkbox 变化时,回调里怎么取当前值?

form.on('checkbox(yourFilter)', function(data){...}),它的 data 参数自带 elem(当前触发的 checkbox DOM)、othis(jQuery 封装对象)和最关键的 value(当前这个 checkbox 的 value 值)——但注意:这只是单个 checkbox 的值,不是全部已选值。

  • 要获取“全部已选项”,仍得在回调里再调一次 form.val('yourFilter')
  • 不要依赖 data.elem.checked,它可能滞后于 UI
  • 如果需要判断是勾选还是取消,看 data.elem.checked + 对比上一次结果,或者用 data.othis.next().hasClass('layui-form-checked')

常见错误:提交前发现 checkbox 值总是空数组

大概率是表单容器没加 lay-filter,或者 form.val() 调用时机不对。layui 表单模块靠 lay-filter 关联数据,没这个属性就识别不了你的表单组。

  • 表单容器(如 formdiv)必须有 lay-filter="userForm"
  • 确保已执行 layui.use(['form'], function(){...}) 并初始化了 form 模块
  • 如果 checkbox 是 JS 动态追加的,追加完要立刻执行 form.render('checkbox', 'userForm')
  • 别把 checkbox 放在 layui-form-item 外面,否则可能被忽略
layui 的 checkbox 行为和原生差异大,绕开它的机制硬查 DOM,十次有八次掉坑里。最省事的办法就是老老实实走 form.val(),哪怕多调一次也比后期 debug 强。

相关文章

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

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

下载

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

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

2200

4

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

340

5

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.15

2033

5

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.24

1121

6

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

140

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

60

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

40

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

40

27

热门下载

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

精品课程

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

共87课时 | 12.3万人学习

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

共89课时 | 10.5万人学习

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

共5课时 | 1.6万人学习