记录一下开发过程中遇到的前端的问题:
1:复选框的回显
var index = [];
//根据name="editbusinessFlags" 获取所有的复选框
var checkBoxAll1 = $('input[name="editbusinessFlags"]');
//根据后台传过来的businessFlag重新组成一个数组
for(var i=0;i<data.length;i++){
var business = data[i].businessFlag;
index.push(business);
}
//遍历所有的复选框
$.each(checkBoxAll1,function(j,checkbox){
//获取每一个复选框的val
var checkValue=$(checkbox).val();
//后台传过来的businessFlag重新组成的数组 和 每一个复选框的val比较
if(index.includes(parseInt(checkValue))){
//如果数组中有该复选框的值,则选中该复选框
$(this).prop("checked",true);
}else{
//如果数组中没有则不选中该复选框(清除复选框的checked属性)
$(this).removeProp("checked")
}
})
开发过程中遇到的问题:刚开始用的是attr()方法,出现了复选框有时有效,有事无效的bug,最终还是在网上的一片博客中看到了 prop()和attr()的区别才修改过来的
复选框无效的问题:https://www.jb51.net/article/89038.htm(亲测好用)
2:全选和全部选一个按钮实现
//准备工作:给按钮绑定一个id
var checkBoxAll1 = $('input[name^="businessFlags"]');
var check=document.getElementById('allSelected');
$.each(checkBoxAll,function(){
//判断全选按钮是否选中
if(check.checked){
$(this).prop("checked",true);
}else{
$(this).removeProp("checked")
}
})
忠告:前端属性动态的操作尽量用prop()