如何在同一个模态框中更改内容并传送数据减少代码量呢?
如何在同一个模态框中更改内容并传送数据减少代码量呢?
我们平时要用到模态框的地方很多,例如在某些新增内容和修改内容的时候。而往往很多时候,新增模态框里面的内容和修改模态框里面的内容一样,所以当我们要用到这两个模态框的时候,是不是要分别写新增模态框和修改模态框呢?其实假如模态框的内容一样,只是要改一下标题或者其他内容的话,不用写两个模态框的,写一个模态框,然后再利用text来改一下内容就行了。而在传送数据的时候也可以减少代码量,只是请求数据的方法不同。接下来看一下该如何写。
现在来以新增员工模态框和修改员工模态框为例:
Html:
其实在标题那里可以不设置标题内容,即“新增员工”不用写,然后可以在写js的时候就把标题内容填写上去,在写js的时候就设置表单的行为action,这样可以方便后面减少代码量和在控制器中新增数据。
Js:
//弹出新增模态框
function InsertEmployee() {
//重置表单
$("#formEmployee")[0].reset();
//设置模态框标题(重点)
$("#modalEmployeeTitle").text("新增员工");
//设置表单的action(重点)
$("#formEmployee").prop("action", "/Main/Insertemployee");
//弹出模态框
$("#modalEmployee").modal("show");
}
//弹出修改的模态框
function openUpdateModal(EmployeeID) {
//重置表单
$("#formEmployee")[0].reset();
//设置模态框标题(重点)
$("#modalEmployeeTitle").text("修改员工");
//设置表单的action(重点)
$("#formEmployee").prop("action", "/Main/Updateemployee");
//回填数据
$.post("/Main/SelectUpdateId",{ employeeID: EmployeeID},function (returnData){
loadDatatoForm("formEmployee", returnData)
});
//弹出模态框
$("#modalEmployee").modal("show");
}
//保存新增/修改
function savaEmployee() {
//获取页面信息
var employeeNum = $("#formEmployee [name='employeeNum']").val();
var employeeName = $("#formEmployee [name='employeeName']").val();
//判断内容不等于空
if (employeeNum!=”” && employeeName!=””) {
//提交表单
$("#formEmployee").ajaxSubmit(function (returnJson){
// returnJson 用来接收返回的数据
//录入成功
if (returnJson.State) {
//关闭模态框
$("#modalEmployee").modal("hide");
//提示信息
layer.msg(returnJson.Text, { icon: 1, title: "提示" });
//刷新表格
employee.reload();
}
else{
layer.alert(returnJson.Text, { icon: 0, title: "提示"});
}
});
}
else {
layer.alert("请填写完整数据信息!", { icon: 0, title: "提示" });
}
}
由上面可以看出,这样写可以减少很多代码量,因为不按这种写法的话要分别写保存新增的方法和保存修改的方法,而这两种方法的代码差不多是一样的,只是在表单里的行为不同,在控制器里面的写法不同,所以这样写对我们好处多多。