<form class="layui-form"> <input type="hidden" name="id" /> <button class="layui-btn layui-btn-sto" id="btnSave" lay-filter="btnSave" lay-submit>保存</button> </form>
若是僅須要監聽效果(單擊事件),則只需上述一個 button 以及 lay-filter 和 lay-submit。
若是須要收集表單元素的值,則還須要 form 以及其樣式 layui-form。javascript
// 保存 form.on('submit(btnSave)', function (data) { console.info('開始保存'); // * 按鈕禁用 var isDisabled = $("#btnSave").hasClass('layui-btn-disabled'); if (isDisabled) { return false; } // * 整合表單數據 var formData = data.field; $.extend(formData, { Id: $("#hiddenId").val() }); console.info(formData); // * 肯定路徑 var url = ""; if (editMode == "add") { url = urlEnum.Add; } else if (editMode == "update") { url = urlEnum.Update; } else { alert('編輯模型不肯定, add / update'); return; } // * 發起請求 $.ajax({ data: formData, type: "POST", dataType: "JSON", url: url, beforeSend: function () { // 禁用 $("#btnSave").addClass('layui-btn-disabled'); }, complete: function () { // 啓用 $("#btnSave").removeClass('layui-btn-disabled'); }, success: function (result) { console.info("保存數據成功,返回的數據爲:↓ "); console.info(result); if (result.Status) { // 刷新列表 parent.$("#mainGrid").bootstrapTable("selectPage", 1); // 確保在最後關閉窗體 parent.layer.close(parent.layer.getFrameIndex(window.name)); } else { // 提示失敗 layer.alert(result.StatusMessage, { title: '提示信息', icon: 5 }); } } }); // end ajax return false; });