有两个下拉列表,一个颜色,一个尺寸,两个下拉列表的数据都是从数据库中取得,因为不太熟悉js,所以弄了半天没弄起来,现在在action中已经将颜色表的对象放入session中 ,代码如下:
Java代码
function select()
{
var select=document.getElementById("select1");
var size=document.getElementById("size").value;
alert(size);
for(var i=0;i<size;i++)
{
select.options.add(new Option(i,i));
}
}
</script>
<--
</head>
<body onload="select()">
//页面显示4
<div id="size" value="${size}" />
//页面显示红,黄,橙 ,绿
<c:forEach items="${color}" var="info" >
<tr>${info.colorName }</tr>
</c:forEach>
-->
<select id="select1" name="select1" onchange="change()"> function select()
{
var select=document.getElementById("select1");
var size=document.getElementById("size").value;alert(size);
for(var i=0;i<size;i++)
{
select.options.add(new Option(i,i));
}
}</script>
<--
</head>
<body onload="select()">
//页面显示4
<div id="size" value="${size}" />
//页面显示红,黄,橙 ,绿
<c:forEach items="${color}" var="info" >
<tr>${info.colorName }</tr>
</c:forEach>
--><select id="select1" name="select1" onchange="change()">
其中select.options.add(new Option(i,i));中怎样才能将红,黄,橙 ,绿显示在下拉列表中
Java代码
function select()
{
var select=document.getElementById("select1");
var size=document.getElementById("size").value;
alert(size);
for(var i=0;i<size;i++)
{
select.options.add(new Option(i,i));
}
}
</script>
<--
</head>
<body onload="select()">
//页面显示4
<div id="size" value="${size}" />
//页面显示红,黄,橙 ,绿
<c:forEach items="${color}" var="info" >
<tr>${info.colorName }</tr>
</c:forEach>
-->
<select id="select1" name="select1" onchange="change()"> function select()
{
var select=document.getElementById("select1");
var size=document.getElementById("size").value;alert(size);
for(var i=0;i<size;i++)
{
select.options.add(new Option(i,i));
}
}</script>
<--
</head>
<body onload="select()">
//页面显示4
<div id="size" value="${size}" />
//页面显示红,黄,橙 ,绿
<c:forEach items="${color}" var="info" >
<tr>${info.colorName }</tr>
</c:forEach>
--><select id="select1" name="select1" onchange="change()">
其中select.options.add(new Option(i,i));中怎样才能将红,黄,橙 ,绿显示在下拉列表中
<body onload="select()">
//页面显示4
<div id="size" value="${size}" />
//页面显示红,黄,橙 ,绿
<c:forEach items="${color}" var="info" >
<tr>${info.colorName } </tr>
</c:forEach>
,
就是想把红,黄,橙 ,绿 显示在页面下拉列表中,而不是0123
var color=["红","黄","蓝"]
for(var i=0;i <size;i++)
{
select.options.add(new Option(color[i],i));
}
红黄蓝是从数据库中查询后放在session中,不是直接写在js中的,就是想问怎样在js中调用这个session中数据(红黄蓝是在页面里从session中迭代出来的)
函数改成
function select(){
var sel=document.getElementById("select1");
var size=document.getElementById("size").value;
var divName=document.getElementById("size");
var divHTML=divName.innerHTML;
var temp=divHTML.split("</TR>");
var num="<TR>".length;
for (var i=0;i<size; i++)
{
sel.options.add(new Option(temp[i].substr(temp[i].indexOf("<TR>")+num,temp[i].length),i));
}
}
var num=" <TR>".length;
也去掉空格
只要你页面代码没有换,再把我做的函数中<TR>和</TR>前面的空格去掉就应该可以了。我做的是动态读取你页面中的值。不是写死的!
size当然好传了,我说的是<c:forEach items="${color}" var="info" >
<tr>${info.colorName } </tr>
</c:forEach> 中的colorName这个需要迭代才能再页面显示的怎么在js中展示
var divHTML=divName.innerHTML;
var temp=divHTML.split(" </TR>");
var num=" <TR>".length;
for (var i=0;i <size; i++)
{
sel.options.add(new Option(temp[i].substr(temp[i].indexOf(" <TR>")+num,temp[i].length),i));
}
红字都是读取迭代在页面中的值。