在编辑表单时,需要对某些字段做处理,使其置灰,并且不可编辑,同时禁用掉点击事件。在保存数据时,不能影响数据的获取。
前端采用了layui和semantic ui组件。表单中需要禁用的只有semantic ui组件的下拉框、日期框 和 layui的日期框。
思路:semantic ui支持disabled class添加后,样式以及功能支持禁用和置灰。layui的日期框,显示的部分实际上就是个input输入框。直接使用disabeld属性也能支持。disabled属性有可能导致数据获取不全,所以采用在获取数据前,先取消禁用和置灰,获取完成后,再禁用和置灰,防止数据获取不全问题。
未禁用前效果
禁用后效果
/**
* 禁用部分不能修改字段
*/
function disabledPlan(){
$("#qualityCheckTypeDiv").addClass("disabled");//置灰质控类型
$("#go").attr("disabled",true);//置灰计划开始时间
$("#end").attr("disabled",true);//置灰计划结束时间
$("#planCheckDate").attr("disabled",true);//置灰计划检查日期
$("#apnSelect").addClass("disabled");//置灰班次选择
$("#time_start").parent().addClass("disabled",true);//置灰检查时间范围
$("#c_team").addClass("disabled");//置灰小组
$("#leaderDiv").addClass("disabled");//置灰组长
$("#personsDiv").addClass("disabled");//置灰组员
$("#qualityCheckTypeSearch").hide();//隐藏质控类型配置选择
$("#qualityCheckGroupSearch").hide();//隐藏小组
$("#qualityCheckContentSearch").hide();//隐藏质控类型选择
}
/**
* 启用部分不能修改字段
*/
function enablePlan(){
$("#qualityCheckTypeDiv").removeClass("disabled");//取消置灰质控类型
$("#go").attr("disabled",false);//取消置灰计划开始时间
$("#end").attr("disabled",false);//取消置灰计划结束时间
$("#planCheckDate").attr("disabled",false);//取消置灰计划检查日期
$("#apnSelect").removeClass("disabled");//取消置灰班次选择
$("#time_start").parent().removeClass("disabled");//取消置灰检查时间范围
$("#c_team").removeClass("disabled");//取消置灰小组
$("#leaderDiv").removeClass("disabled");//取消置灰组长
$("#personsDiv").removeClass("disabled");//取消置灰组员
}进入页面初始调用disabledPlan()方法 保证置灰效果。
点击保存时,先调用enablePlan()方法 再组装请求参数。设置完成后,再调用disabledPlan()方法。



发表评论