<form id="test" name="test" action="" method="post">
<select id="Position" name="Position">
<option value="0">- 请选择 -</option>
<option value="1">董事长</option>
<option value="2">总经理</option>
<option value="3">副总</option>
</select><br />
<select id="Depart" name="Depart">
<option value="0">- 请选择 -</option>
<option value="1">管理部</option>
<option value="2">人事部</option>
<option value="3">业务部</option>
</select><br />
<select id="PlanType" name="PlanType">
<option value="0">- 请选择 -</option>
<option value="1">拜访面谈</option>
<option value="2">电话沟通</option>
<option value="3">书面洽谈</option>
</select><br />
</form>
//不写函数,直接指定值
var sID = "2";
for (i=0;i<document.test.Position.options.length;i++){
if (document.test.Position.options[i].value == sID)
document.test.Position.options[i].selected = true;
}
//参数:select的ID,指定值
function selectIt(sSelect, sID) {
var j = document.getElementById(sSelect);
var len = j.options.length;
for (var i = 0; i < len; i++) {
if (j.options[i].value == sID) {
j.options[i].selected = true;
return;
}
}
}
//参数:form名,select名,指定值
function selectedIt(sForm, sSelect, sID) {
var a = document.sForm.sSelect;
var b = a.options.length;
for(var i=0; i < b; i++){
if(a.options[i].value == sID){
a.options[i].selected = true;
return;
}
}
}
selectIt("Depart","2");
selectedIt("test","PlanType","3");
请看js部分,最上面不写成函数,直接指定form名,select名和指定值来定位是没有任何问题的.
后来想一想,经常要用到,那就写成函数吧,方便调用.于是有了selectIt这个函数,通过引入select的ID值和指定值两个参数来定位,初步使用也正常.
后来使用中发现一个问题,万一页面中有几个form,有几个相同的select,那就不行了,selectIt函数只会针对第一个form有效,如果用其它方法来循环指定虽然可以实现,但似乎与初衷不一样了,我要指定某个form的某个select的值.于是想改一下函数,再引入一个sForm的参数来指定form,于是有了selectedIt函数,结果测试发现问题了,报 'document.sForm.sSelect' 为空或不是对象的错误,请各位兄弟支招,这个函数应该如何修改,谢谢.