javascript - AJAX 不提交
问题描述
我有一个 laravel 项目,管理员可以通过表单更改用户数据。我希望这个表单由 ajax 提交。但它没有被提交。
我有一个表格:
<form id="userData{{$loop->iteration}}" method="POST">
@csrf
<!--some inputs-->
</form>
<button id="changeUserData{{$loop->iteration}}" data-id="#userData{{$loop->iteration}}">Save</button>
JS:
$("#changeUserData{{$loop->iteration}}").click(function (e) {
var ele = $(this);
var formId = ele.attr("data-id");
console.log(formId);
$(formId).submit(function (e){
console.log("test2");
e.preventDefault();
$.ajax({
url: '{{url('changeUserData')}}',
method: "PATCH",
data: $(formId).serialize(),
success: function(){
console.log("test");
}
})
})
});
当我按下按钮时,第一个 console.log 被触发,但没有别的。我检查了 formId 是否与表单 ID 匹配,并且确实如此,所以我不知道出了什么问题。
解决方案
问题在于.submit()
参数handler
不提交表单本身。它只是将事件处理程序绑定到表单的submit
事件。
您可以删除该绑定,它应该可以工作:
$("#changeUserData{{$loop->iteration}}").click(function (e) {
var ele = $(this);
var formId = ele.attr("data-id");
console.log(formId);
$.ajax({
url: '{{url('changeUserData')}}',
method: "PATCH",
data: $(formId).serialize(),
success: function(){
console.log("test");
}
})
})
推荐阅读
- c# - Facebook Graph api oauth 异常代码 1
- php - 如何使用 php 在工具提示 Bootstrap 4 中显示图像
- tcl - 在 mkdir 之后,文件不会在创建的文件夹中生成
- python-3.x - Pyspark 中的 HDFS 文件存在性检查
- python - tensorflow:分析图像给出了无法为张量“占位符:0”提供形状(1296000,)的值,其形状为“(?,1296000)”
- mysql - Mysql - 选择有所有日期的房间
- sentry - Sentry - 将 JSON 字段包含在引号中的设置
- mysql - SphinxQL 连接问题(守护进程正在监听时)
- avro - 如何在 Avro 模式中指定范围?
- javascript - 在 Angular 6 中动态调用索引组件