我有两个列表,如部门和经理,我把这两个放在请求范围内。 现在我想在选择框中显示两个列表,这样当用户选择一个部门时,相应的管理器应该作为默认值进入下一个选择框。如果我想改变经理,我可以选择任何其他并保存。
我的jsp是这样的。 第一个有部门的选择框。
<select id="dname" name="Name" onchange="autoPopulateModifydept();">
<option value="">-Select</option>
<c:forEach var="departmentList" items="${departmentList}">
<option value='${departmentList.getDepartment()}@${departmentList.getId()}'>${departmentList.getDepartment()}</option>
</c:forEach>
</select>
第二个选择框,其中包含managerlist。
<select id="deptHead" name="deptHead" onchange="autoPopulatedeptHead();">
<option value="">-Select-</option>
<c:forEach var="projectmanager" items="${projectManagerList}">
<option value='${projectmanager.getProjectManagerName()}@${projectmanager.getPmId()}'>${projectmanager.getProjectManagerName()}</option>
</c:forEach>
</select>
这里getId在department中,getPmId在manager中是相同的。 基于此我想链接两个选择框。 怎么做。
答案 0 :(得分:0)
这可以使用javascript完成,请参阅下面的示例。在更改第一个列表选择时调用此方法,并将第一个列表的选定值与第二个列表进行比较,并使用匹配的第一个列表Id值选择第二个列表。
function changeMangerId(){
var emplId =document.getElementById("firstList").value;
<c:forEach var="paramObj"
items="${managerList}]
var managerIdId= '<c:out value="${Id}"/>';
if(emplId)!= null && (emplId)!= '' && trim(emplId)=== trimm(anagerIdId) {
$("#SecondListId option[value='"+ managerIdId +"']").attr("selected", "selected");
}
</c:forEach>
}