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;
});
});