data 的来源
当你点击带有 lay-submit 属性的按钮(如发布按钮、保存草稿按钮)时,LayUI 的 form 模块会自动拦截表单提交事件,然后:
收集当前表单中所有带 name 属性的表单元素(如输入框、下拉框、复选框等)的值。
将这些值封装成一个 data 对象,作为参数传递给事件回调函数。
data 的结构
data 对象包含两个主要属性:
data.field:最常用的属性,是一个键值对对象,键是表单元素的 name 属性值,值是该元素的当前值。
data.elem:触发事件的表单 DOM 元素(整个 标签)。
结合你的代码看:
例如在发布文章的弹窗中,表单有标签复选框(name="{{ tag.id }}"):
html
预览
当点击弹窗中的 “发布文章” 按钮时,form.on('submit(publish)', (data) => { ... }) 会触发,此时: javascript 运行 let tags = data.field; // tags 就是包含所有选中标签的键值对对象 tags 的结构类似 { "1": "on", "3": "on" }(键是标签的 id,值为 on 表示被选中)。 再比如顶部的文章标题输入框: html 预览 在 form.on('submit(saveDraft)', (data) => { ... }) 中: javascript 运行 let title = data.field.title; // 直接通过 data.field.xxx 获取输入框的值 总结: data 是 LayUI 自动生成的表单数据载体,其核心 data.field 包含了当前表单中所有带 name 属性的元素的值,无需手动获取,直接通过 data.field.字段名 即可使用,简化了表单数据的收集逻辑。