页面刷新值不变:
<style>
.userData {behavior:url(#default#userdata);}
</style><select id="select1" class="userData">
<option>option1</option>
<option>option2</option>
<option>option3</option>
<option>option4</option>
</select> <script language=javascript>
function saveSelectedIndex()
{
obj.setAttribute("sSelectValue",obj.selectedIndex);
obj.save("oSltIndex");
}
function loadSelectedIndex()
{
obj.load("oSltIndex");
obj.selectedIndex=obj.getAttribute("sSelectValue");
}
var obj=document.all.select1;
obj.attachEvent('onchange',saveSelectedIndex);
window.attachEvent('onload',loadSelectedIndex)
</script>
<style>
.userData {behavior:url(#default#userdata);}
</style><select id="select1" class="userData">
<option>option1</option>
<option>option2</option>
<option>option3</option>
<option>option4</option>
</select> <script language=javascript>
function saveSelectedIndex()
{
obj.setAttribute("sSelectValue",obj.selectedIndex);
obj.save("oSltIndex");
}
function loadSelectedIndex()
{
obj.load("oSltIndex");
obj.selectedIndex=obj.getAttribute("sSelectValue");
}
var obj=document.all.select1;
obj.attachEvent('onchange',saveSelectedIndex);
window.attachEvent('onload',loadSelectedIndex)
</script>
解决方案 »
- fusioncharts 饼图pid3d的问题
- window.event.keyCode在ie里被提示对象没有找到,怎么办?
- 想通过js自动提交表单,但是却不执行Onsubmit的事件,怎么办?
- js效果的页面,在WIN SERVER2003中无效?
- QQ 更改头像
- 请问怎么取得浏览器名称的函数是哪一个???????????????
- xmlhttp 乱码了 咋办
- 函数名存在一个变量里,那么如何调用这个函数呢
- 估计是一个有难度的问题,100cent
- JS+Flash有办法判断访客是否是同一台电脑吗?
- 为什么在主页面中会弹出不可控的2级子页面出来?什么办法可以解决?
- document.write在表格中用输入信息,为何老是打开一个新页面??!!
而且我说的是前面的下来列表的选中值变化,使后面的下拉列表的选项改变。
下面是部分代码,因为和ORACLE相连无法在其他机子上调试
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ page import="java.sql.*"%>
<%@page import="cn.cbsw.beans.pub.*"%>
<jsp:useBean id="stmt" scope="page" class="cn.cbsw.beans.singleness.ConnectOracle.ConnectOracle" />
<script language="javascript">
var val=new Array();
var valcounty=new Array();<%
menuop mop=new menuop();
String strWeburl=mop.GetWebUrl(request,"AddScCert");
String Weburl = mop.GetWebAppUrl(request);
String strSql="";
ResultSet result=null;
int i=0;
result=stmt.executeQuery("select * from viewprovcity");
while(result.next())
{
out.println("val["+i+"]=new Array('"+result.getString("provid")+"','"+result.getString("regionname")+"','"+result.getString("cityid")+"')");
i=i+1;
}
result=stmt.executeQuery("select * from unitencoding");
i=0;
while(result.next())
{
out.println("valcounty["+i+"]=new Array('"+result.getString("unitid").substring(0,4)+"','"+result.getString("unitname")+"','"+result.getString("unittypeid")+"')");
i=i+1;
}
%>
function saveSelectedIndex()
{
obj.setAttribute("sSelectValue",obj.selectedIndex);
obj.save("oSltIndex");
}
function loadSelectedIndex()
{
obj.load("oSltIndex");
obj.selectedIndex=obj.getAttribute("sSelectValue");
}function changeprov(str)
{
document.forms.CityId.length=0;
document.forms.CityId.options[0] = new Option('所在市','0');
document.forms.UnitID.length=0;
document.forms.UnitID.options[0] = new Option('企业名称','0');
for (i=0;i<val.length;i++)
{
if ((val[i][0] == str))
{
document.forms.CityId.options[document.forms.CityId.length] = new Option(val[i][1], val[i][2]);
}
}
}function chanegetype()
{document.forms.Unittype.length=0;
document.forms.Unittype.options[0] = new Option('企业类型','0');
document.forms.Unittype.options[1] = new Option('生产企业','1');
document.forms.Unittype.options[2] = new Option('流通企业','2');
document.forms.UnitID.length=0;
document.forms.UnitID.options[0] = new Option('企业名称','0');
}function changeunit(str,str1)
{document.forms.UnitID.length=0;
document.forms.UnitID.options[0] = new Option('企业名称','0');
for (i=0;i<valcounty.length;i++)
{
if((valcounty[i][0] == str)&&(valcounty[i][2] == str1))
document.forms.UnitID.options[document.forms.UnitID.length] = new Option(valcounty[i][1], valcounty[i][2]);
}
}
</script>
<html>
<head>
<title>Z-AddressList</title>
</head>
<body>
<CENTER>Z-ADDRESSLIST</CENTER>
Welcome <%=request.getParameter("userid")%><br>
<form name="forms" method="post" action="<%=strWeburl%>" enctype="multipart/form-data" >
<table width="90%" align="center" border="1" cellpadding="0" cellspacing="0" bordercolor="#999999" class="text12-black" style="border-collapse: collapse">
<tr>
<td width="17%" height="26">企业名称</td>
</tr>
<tr>
<td height="26">所在地区</td>
<td height="26" colspan="3">
<%
strSql="select * from nation.povince";
result=stmt.executeQuery(strSql);
%>
<select name="ProvId" onChange="changeprov(this.value)">
<option value="0" selected>所在省或直辖市</option>
<%while (result.next()){%>
<option value="<%=result.getString("provid")%>"><%=result.getString("provname")%></option>
<%}%>
</select>
<select name="CityId" onChange="chanegetype()" >
<option value="0" selected>所在市</option>
</select>
</td>
</tr>
<tr>
<td height="26">企业名称(全称):</td>
<td height="26" colspan="3">
<select name="Unittype" onChange="changeunit(CityId.value,this.value)">
<option value="0" selected>企业类型</option>
<option value="1">生产企业</option>
<option value="2">流通企业</option>
</select>
<style>
.userData {behavior:url(#default#userdata);}
</style>
<select name="UnitID" class="userData">
<option value="0" selected>企业名称</option>
</select>
<tr>
<td width="40%" height="42">
<div align="center">
<input type="submit" name="Submit" value=" 提 交 " >
</div></td>
<td width="60%">
<div align="left">
<input type="reset" name="Submit2" value=" 重 置 ">
</div></td>
</tr>
</table>
</form>
</body>
</html>
楼上的代码是可以跳走N个页面后再回来时回复数据的。
对于用浏览器的“后退”能够到达的页面,仅仅:
<select id="select1" class="userData">
<option>option1</option>
<option>option2</option>
<option>option3</option>
<option>option4</option>
</select>
会自动保留状态的。楼主问的关键在于js动态生成的下拉列表的内容如何恢复,
可以在页面onbeforeunload事件处理函数中,使用
cookie
userdata
form element (may be hidden form element)
中的任何一种来实现记录数据,再次回来时读取,并调用动态下拉列表的设置函数。
视不同的代码实现而异。还有一种简便的方法是把<select>的outerHTML直接存起来,然后去恢复它。
PHP中对SESSION CACHE 进行支持就可以达到上述效果。