有两个select:部门departmentlist、员工employeelist,两个hidden保存着原值:部门名departmentnamex、员工名employeenamex
在设置部门select后,通过以下代码设置默认选中部门,然后手动触发部门change事件,以使员工select重新绑定。代码如下:
var deptname = $("#departmentnamex").val(); //部门名称 $("#departmentlist option").each(function () { if ($(this).text() == deptname) { $(this).attr("selected", true); $("#departmentlist").change(); } });
在change事件里,获取员工并绑定到员工select,此时想如法炮制设置员工默认值,但是不成功,在change时间里,绑定员工数据后,查询到员工select个数是0:
$("#employeelist").find("option").length
应该如何设置员工select的默认值?
或者在手动添加option项的时候,有没有办法设置某一项为选种值?我的添加方法如下:
$.post("/Employee/GetJsonEmployee", { departmentId: selectedDeptId }, function (data) { $.each(data, function (i, item) { ddl_e.append($('<option/>', { value: item.Value, text: item.Text })); }); } );
修改selectedindex属性
问题就是在部门的change事件里设置不起作用,虽然在这个事件里添加了option进去,但是随后获取到的option个数为0。
提问完自己试了下在手动添加option项的时候,设置某一项为选中值,果然可以。。。
var emplname = $("#employeenamex").val(); //员工名称 $.post("/Employee/GetJsonEmployee", { departmentId: selectedDeptId }, function (data) { $.each(data, function (i, item) { if (item.Text == emplname) { ddl_e.append($('<option/>', { value: item.Value, text: item.Text, selected: true })); } else { ddl_e.append($('<option/>', { value: item.Value, text: item.Text })); } }); } );
要么你在页面加载的时候把所有“员工”的数据通过 键值对 的形式存起来,键是 “部门” 值是 “员工”, 选中部门后动态把员工的数据加到员工的select上面,
要么你在选中部门后ajax得到该部门的所有员工,再把数据加到员工的select上面
兄台你没看清我所说的问题,可能是我说的不够清楚。
http://home.cnblogs.com/group/topic/9741.html 给个三级联动的连接
在change事件里,获取员工并绑定到员工select,此时想如法炮制设置员工默认值 这里不是很理解,你的部门变了,部门下的员工也变了。为什么这里还需要设置默认值呢?
是这样,进入编辑状态,需要设置两个select,选中原来的部门、员工。第一步是绑定部门数据,然后选中原来的部门,触发change事件,重新绑定员工数据,第二步就是设置员工列表,选中原来的员工。
进入后用户去重新选择部门,员工变了,这种时候就无需设置默认值。