layui教程(一) form 表单的提交问题
点击打开表单页面(弹出层形式)如:

父页面打开子页面的代码
layer.open({type:2, //类型为1时可以为html,和代码,为2时页面地址title: title, //弹出层的标题area: [width, heigth], //大小fixed: false, //不固定maxmin: true,content: url, //弹出层的地址btn: ['确定', '取消'], //按钮名称yes: function(index,layero){var submit = layero.find('iframe').contents().find(submitButId); //子页面提交表单的按钮submit.click(); //按钮提交表单return false;},btn2: function(){layer.closeAll();},zIndex: layer.zIndex, //重点1success: function(layero,index){// layer.setTop(layero); //重点2layer.iframeAuto(index);}});
子页面提交表单的按钮代码
<button style="display:none" lay-submit lay-filter="submitBut" id="submitBut"></button>//按钮样式为隐藏,当点击弹出层的确定按钮时,相当于提交表单
子页面提交表单代码
form.on('submit(submitBut)', function(data){var loading = layer.msg('正在保存', {icon: 16, shade: 0.3, time:0});$.ajax({method:"POST",url:saveUrl, //提交表单的地址data:data, //提交表单的数据success:function(res){if(res.stateType == 0){var index = parent.layer.getFrameIndex(window.name);parent.layer.close(index);parent.layer.msg(res.stateMsg, { icon: 1});parent.layui.table.reload(tableName);}else{layer.msg(res.stateMsg,{icon: 2});}},error:function(){console.log("caozuosibai")layer.close(loading);layer.msg('操作失败',{icon: 2});}});return false; //防止表单提交两次});
注意:form.on()表单监控事件中一定要加 return false;如果不加的话,后端不会报错,而前端代码中会运行到error中,不同浏览器也有不同效果,谷歌浏览器有时会报错,火狐和其他浏览器100%报错
