
Laravel 表单提交时,动态通过 jQuery 添加的 input 元素未被 POST 到后端,根本原因是这些元素未被包裹在 标签内——HTML 表单仅提交其内部直接子元素(及后代)的值,而动态插入的 DOM 若位于 之后,则完全被忽略。
laravel 表单提交时,动态通过 jquery 添加的 input 元素未被 post 到后端,根本原因是这些元素未被包裹在 `
` 之后,则完全被忽略。? 问题定位:表单结构错位
在您提供的 Blade 模板中,
由于 $(".education-info").append(educationcontent) 将新 HTML 插入到
✅ 正确修复方案:确保动态内容在
? 重要提示:原 jQuery 中 name="degree1"、name="clg1" 等硬编码名称会导致多组数据冲突(如添加两组时,后一组覆盖前一组)。强烈建议改用数组命名,例如 name="education[0][degree]" 或更简洁的 name="degree[]",便于 Laravel 后端统一接收为数组:
// 优化后的 jQuery 动态添加逻辑(推荐) let index = 0; $(".add-education").on('click', function () { index++; var educationcontent = ` <div class="row form-row education-cont"> <div class="col-12 col-md-10 col-lg-11"> <div class="row form-row"> <div class="col-12 col-md-6 col-lg-4"> <div class="form-group"> <label>Degree</label> <input type="text" class="form-control" name="degree[]"> </div> </div> <div class="col-12 col-md-6 col-lg-4"> <div class="form-group"> <label>College/Institute</label> <input type="text" class="form-control" name="clg[]"> </div> </div> <div class="col-12 col-md-6 col-lg-4"> <div class="form-group"> <label>Year of Completion</label> <input type="text" class="form-control" name="yoc[]"> </div> </div> </div> </div> <div class="col-12 col-md-2 col-lg-1"> <label class="d-md-block d-sm-none d-none"> </label> <a href="#" class="btn btn-danger trash"><i class="far fa-trash-alt"></i></a> </div> </div>`; $(".education-info").append(educationcontent); });
? 验证与调试建议
-
浏览器检查:右键 → 「检查」→ 查看 Elements,确认所有 元素是否真实嵌套在
标签内; - Network 面板:提交表单后,在 DevTools 的 Network → Payload 标签页中查看实际发送的字段,确认 degree[]、clg[] 是否存在且有值;
-
Laravel 后端验证:
public function drprofilesettingpost(Request $request) { // 查看完整请求数据(含数组) \Log::info($request->all()); // 或只查教育字段 \Log::info($request->get('degree', [])); return response()->json(['success' => true]); }
⚠️ 补充注意事项
-
事件委托:若 .trash 删除按钮需支持动态元素,应使用事件委托绑定:
$(document).on('click', '.trash', function(e) { e.preventDefault(); $(this).closest('.education-cont').remove(); }); -
CSRF 保护:确保 @csrf 存在于
内部,且未被意外注释或遗漏; - 命名一致性:避免混合使用 degree1 和 degree[],统一采用数组方式可简化后端处理(如 foreach ($request->degree as $key => $val))。
遵循以上结构修正与命名规范,即可确保动态添加的教育信息完整、可靠地提交至 Laravel 后端。










