现在要做一个下拉菜单,从数据库中取出了学院以后,存在request中,在显示页面,需要通过一个select将其显示出来
代码如下:
<% //以下是从request中得到所要的信息。
ArrayList<Academy> acaList = (ArrayList<Academy>)request.getAttribute("acaList"); //所有学院
ArrayList<String> acaNameList = new ArrayList<String>();
for(int i=0; i<acaList.size(); i++){ //将所有学院的名字取出,放入ArrayList中
Academy aca = (Academy)acaList.get(i);
acaNameList.add(aca.getAcdname().trim());
}
%>
<script type="text/javascript" language="javascript" > function select(){
var deptList = new Array(<% //将所有学院放入一个数组中
for(int i=0; i<acaNameList.size(); i++){
if(i<acaNameList.size()-1){
out.print("\""+acaNameList.get(i)+"\"" + ",");
}else{
out.print("\""+acaNameList.get(i)+"\"");
}
}%>); alert("我被执行了!"); //这一句测试用,结果没有执行 var dept = document.getElementById("s1"); //s1是select的id标识
for(int i=0; i<deptList.length; i++){
var op = new Option(i+"", deptList[i]+"");
dept.options.add(op);
}
}
</script>
</head>
<body onload="select()">
.........................
<select id="s1" name="s1">
</selected>
</body>
现在当运行的时候,没有结果,而且alert也没有执行!!请问高手如何解决???
代码如下:
<% //以下是从request中得到所要的信息。
ArrayList<Academy> acaList = (ArrayList<Academy>)request.getAttribute("acaList"); //所有学院
ArrayList<String> acaNameList = new ArrayList<String>();
for(int i=0; i<acaList.size(); i++){ //将所有学院的名字取出,放入ArrayList中
Academy aca = (Academy)acaList.get(i);
acaNameList.add(aca.getAcdname().trim());
}
%>
<script type="text/javascript" language="javascript" > function select(){
var deptList = new Array(<% //将所有学院放入一个数组中
for(int i=0; i<acaNameList.size(); i++){
if(i<acaNameList.size()-1){
out.print("\""+acaNameList.get(i)+"\"" + ",");
}else{
out.print("\""+acaNameList.get(i)+"\"");
}
}%>); alert("我被执行了!"); //这一句测试用,结果没有执行 var dept = document.getElementById("s1"); //s1是select的id标识
for(int i=0; i<deptList.length; i++){
var op = new Option(i+"", deptList[i]+"");
dept.options.add(op);
}
}
</script>
</head>
<body onload="select()">
.........................
<select id="s1" name="s1">
</selected>
</body>
现在当运行的时候,没有结果,而且alert也没有执行!!请问高手如何解决???
后面是就是从request中获取的内容。应该没有错啊?郁闷!!!
*说明:select元素javascript常用操作
* 1.判断是否存在指定value的Item
* 2.加入一个Item
* 3.删除值为value的所有Item
* 4.删除某一个index的选项
* 5.更新第index项的value和text
* 6.设置select中指定text的第一个Item为选中
* 7.设置select中指定value的第一个Item为选中
* 8.得到当前选中项的value
* 9.得到当前选中项的index
* 10.得到当前选中项的text
* 11.清空所有选项
-------------------------------------------------------*/
//1.判断是否存在指定value的Item
function ExistValue(obj,value){
for(var i=0;i<obj.options.length;i++){
if(obj.options[i].value == value){
return true;
}
}
return false;
}
//2.加入一个Item
function AddItem(obj,text,value){
var varItem = new Option(text,value);
obj.options.add(varItem);
}
//3.删除值为value的所有Item
function RemoveItems(obj,value){
for(var i=0;i<obj.options.length;i++){
if(obj.options[i].value == value){
obj.remove(i);
}
}
}
//4.删除某一个index的选项
function RemoveItem(obj,index){
obj.remove(index);
}
//5.更新第index项的value和text
function UpdateItem(obj,index,value,text){
obj.options[index].value = value;
obj.options[index].text = text;
}
//6.设置select中指定text的第一个Item为选中
function SelectItemByText(obj,text){
var isExit = false;
for(var i=0;i<obj.options.length;i++){
if(obj.options[i].text == text){
obj.options[i].selected = true;
return true;
}
}
return false;
}
//7.设置select中指定value的第一个Item为选中
function SelectItemByValue(obj,value){
var isExit = false;
for(var i=0;i<obj.options.length;i++){
if(obj.options[i].value == value){
obj.options[i].selected = true;
return true;
}
}
return false;
}
//8.得到当前选中项的value,index,text
function GetValue(obj){
return obj.value;
}
//9.得到当前选中项的index
function GetIndex(obj){
return obj.selectedIndex;
}
//10.得到当前选中项的text
function GetText(obj){
return obj.options[obj.selectedIndex].text;
}
//11.清空所有选项
function Clear(obj){
obj.options.length = 0;
}
如果你真要像你这样。后台数值绑定,在前台声明一个变量绑定它。
for(int i=0; i<deptList.length; i++){
var op = new Option(i+"", deptList[i]+"");
dept.options.add(op);
}这个for循环当中的变量i类型声明应该用 var 。。