Laravel for循环中如何获取删除表单ID绑定SweetAlert提交事件
解决方案
步骤1:修改视图表单,添加公共类
不需要依赖动态生成的表单ID绑定事件,给所有删除表单添加统一的类名即可,修改后的表单代码如下:
<form action="/student_delete/{{$students[$m]->id}}" id="{{$students[$m]->id}}" method="POST" class="delete-student-form"> {{ csrf_field() }} <td><button type="submit" class="btn btn-danger remove-tr">-</button></td> </form>
步骤2:修改JS绑定逻辑
直接通过公共类绑定所有删除表单的提交事件,事件触发时this会自动指向当前正在提交的表单,不需要额外获取表单ID:
<script> $(".delete-student-form").submit(function(e) { e.preventDefault(); var form = this; Swal.fire({ title: 'do you want to continue?', icon: 'question', iconHtml: '؟', confirmButtonText: 'yes', cancelButtonText: 'no', showCancelButton: true, showCloseButton: true }).then((result) => { if (result.isConfirmed) { form.submit(); } else if(!result.isDenied) { console.log(result.isDenied); } }); }); </script>
可选优化建议
- 当前用的
@for循环固定取前10条学生数据,若学生总数不足10会触发数组越界报错,建议替换为@foreach($students as $student)遍历所有学生数据,写法更简洁也更安全。 - 表单ID如果没有其他场景使用可以直接删除,不会影响当前功能。
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

