解决Layui表单提交数据为空的问题

作者:键盘侠

时间:2026-10-22

浏览:193

在使用Layui框架进行表单提交时,若发现data.field返回空对象,通常是因为HTML元素仅设置了id而遗漏了name属性。Layui底层机制依赖name和value构建提交数据,修复方法是确保input等表单元素同时具备name和id属性,即可恢复正常提交功能。

文章目录

Layui表单提交数据为空的解决方案

问题现象

近期在后台管理模块开发中采用了Layui作为前端框架,整体体验良好。

但在实际开发中遇到了一个典型问题:通过Layui提交表单时,后台接收到的数据为空。

具体表现为执行layer.msg(JSON.stringify(data.field))后,控制台或页面提示显示为空对象。


<form class="layui-form" action="">
 <div class="layui-form-item">
  <label class="layui-form-label">输入框</label>
  <div class="layui-input-block">
   <input type="text" id="title" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
  </div>
 </div>
</form>

layui.use('form', function(){
 var form = layui.form;

 //监听提交
 form.on('submit(formDemo)', function(data){
  layer.msg(JSON.stringify(data.field));//此处显示输入内容
  return false;
 });
});

问题原因

经过仔细排查并对比Layui官方示例源码,发现根本原因在于元素属性的定义方式。Layui在构建提交数据时,严格依赖表单元素的name和value属性来提取数据。

为了便于使用jQuery操作元素,开发者可能将input标签的name属性改为了id,例如:<input type="text" id="title"

正确的做法是同时保留name属性,修改为:<input type="text" id="title" name="title">,这样即可解决数据无法提交的问题。

希望上述解决方案能帮助遇到类似问题的开发者,如需更多技术支持请持续关注本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章