需求如下:
分公司名称下拉框中的内容是单位所有分公司名称列表。由分公司管理人员的账号登陆系统后,下拉框中的选项,除去本分公司名称外,其余选项均置灰不可选择。
使用js完成这个需求:
//将所有非默认值的选项置灰
function selectIt(e) {
//borDepartment是登陆角色所属的分公司
var borDepartment = "<%=dep%>";
//如果角色有分公司属性的话,则只有该项为可选项
if(borDepartment!="" && borDepartment!="null") {
var selectDep = e;
var selectI = 0;
for(var i=0; i<selectDep.options.length; i++) {
//这一句将其余项置灰
if(selectDep.options[i].value!=borDepartment) {
selectDep.options[i].disabled = true;
//防止浏览器不兼容:将disable项手动置灰
selectDep.options[i].style.color="graytext";
}else{
//获取默认选项的索引号
selectI = i;
}
}
//防止disable标签浏览器不兼容
//如果选中disabled项,回滚到默认值
if(e.options[e.selectedIndex].disabled) {e.selectedIndex = selectI;}
}
}
在jsp中这样使用:
<select name="borDepartment" id="borDepartment" onclick="selectIt(this)">
<option value="福建区">福建区</option>
<option value="江苏区">江苏区</option>
<option value="江西区">江西区</option>
<option value="安徽区">安徽区</option>
<option value="贵州区">贵州区</option>
<option value="湖南区">湖南区</option>
<option value="云南区">云南区</option>
<option value="北京区">北京区</option>
<option value="四川区">四川区</option>
<option value="河南区">河南区</option>
<option value="广东区">广东区</option>
<option value="重庆区">重庆区</option>
<option value="甘肃区">甘肃区</option>
<option value="广西区">广西区</option>
</select>