今天遇到这人一个需求:
选择一部分人,在点击确定的时候添加到对应的div中,也就是添加到对应的表单下面,当再次查询的时候需要在已经选过的人的复选框前面打伤对勾。
点确定添加到:
再次打开模态框:
也就是对已经选过的数据进行标记,提醒用户已经选过。
思路:
已经选过的人有唯一的标记ID,获取到全部的ID之后组成一个数组,遍历此数组去寻找所有数据中ID相等的,找到前面的复选框打伤对勾。
第一种:一层遍历
// 验证已经选择的题,如果为已经选中的打上对勾function validateCheckedQuestion() { ???var $leftIds = $(".el_addEPleft").find(".btwenzi")// 查到左边隐藏的ID元素 ???var leftIds = [];// 获取到左边已经选择题的题目 ???for (var i = 0, length_1 = $leftIds.length; i < length_1; i++) { ???????leftIds[i] = $($leftIds[i]).text(); ???} ???var $rightIds = $(".el_addEPtiku").find(".tm_btitlt")// 查到右边题的题目 ???// 根据左边的元素与右边查找如果已经个选中的话打上对勾 ???for (var k = 0, length_2 = leftIds.length; k < length_2; k++) { ???????for (var lx = 0, length_3 = $rightIds.length; lx < length_3; lx++) { ???????????if (leftIds[k] == ($($rightIds[lx]).text())) { ???????????????$($rightIds[lx]).parent().siblings(".el_tiku_checkedButton").attr("checked", "ehecked"); ???????????????break; ???????????} ???????} ???}}
第二种:两层遍历
/** * 校验哪些已经选中,用于判断员工再次选择员工的时候已经选中的checked为选中 1.获取外部已经选中添加到框中的ID数组outEmployeeIds * 2.获取内部多选框集合,判断其value值,如果在outEmployeeIds中能找见将其checked属性设为checked */var checkOutHasChecked = function() { ???var outEmployees = $("#department_employee_out").find(".el_empList"); ???var outEmployeeIds = [];// 标记外面选中的已经ID ???// 初始化外面ID数组 ???for (var i = 0, length = outEmployees.length; i < length; i++) { ???????outEmployeeIds[i] = outEmployees[i].id;// 获取到外部的ID ???} ???var modalOutEmployees = $("#outEmployeeTable").find(".el_checks");// 查找模态框所有的多选框 ???for (var k = 0, length_1 = outEmployeeIds.length; k < length_1; k++) { ???????for (var j = 0, length_2 = modalOutEmployees.length; j < length_2; j++) { ???????????if (outEmployeeIds[k] == modalOutEmployees[j].value) { ???????????????modalOutEmployees[j].checked = "checked";// 修改元素的选中属性为选中 ???????????????break; ???????????} ???????} ???}}
ajax请求数据之后在已经有的数据前面打对勾的方法
原文地址:http://www.cnblogs.com/qlqwjy/p/7775060.html