Layui 表单提交报错:
Uncaught TypeError: ‘checkValidity’ called on an object that does not implement interface HTMLButtonElement
像下面的代码:
layui.use(["form", "popup"], function () { let $ = layui.$; let form = layui.form; // 提交 form.on("submit(saveKeyInfo)", function (data) { $.ajax({ url: "/app/oauth/admin/setting/save", dataType: "json", type: "POST", data: data, success: function (res) { if (res.code) { return layui.popup.failure(res.msg); } return layui.popup.success("操作成功"); } }); return false; }); });
原因是,ajax 中 data 属性配置错了,理应为 data.field;
通过查看提交事件 data 参数,其中 elem 为点击按钮对象,field 为表单数据,form 为当前表单对象。
因此,无法直接使用提交事件中 data 参数,做为 ajax 数据提交项。
调整后代码为:
layui.use(["form", "popup"], function () { let $ = layui.$; let form = layui.form; // 提交 form.on("submit(saveKeyInfo)", function (data) { $.ajax({ url: "/app/oauth/admin/setting/save", dataType: "json", type: "POST", data: data.field, success: function (res) { if (res.code) { return layui.popup.failure(res.msg); } return layui.popup.success("操作成功"); } }); return false; }); });