1、JavaScript
<script type="text/javascript">
var xmlHttp;
var result;
function createXMLHttpRequest(){
if(window.ActiveXObject){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e1){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
alert("创建XMLHttpRequest对象失败");
}
}
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function updates(){
var selected=document.all.m.value;
if(selected==""){
while(document.all.s.options.length>0){
document.all.s.removeChild(document.all.s.childNodes[0]);
}
var option=document.createElement("option");
var defaults=document.all.defaults.value;
option.text=defaults.split(",")[0];
option.value=defaults.split(",")[1];
document.all.s.options.add(option);
return;
}
createXMLHttpRequest();
xmlHttp.onreadystatechange=process;
xmlHttp.open("get","testAction.do?m="+selected,true);
xmlHttp.send(null);
}
function process(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
result=xmlHttp.responseText;
while(document.all.s.options.length>0){
document.all.s.removeChild(document.all.s.childNodes[0]);
}
var results=result.split("/");
for(var i=0;i<results.length;i++){
var option=document.createElement("option");
option.text=results[i].split(",")[0];
option.value=results[i].split(",")[1];
document.all.s.options.add(option);
}
}
}
}
</script>
2、HTML
<select id="m" name="m" onChange="updates()">
<option>
<option value="1">
a
</option>
<option value="2">
b
</option>
<option value="3">
c
</option>
</select>
<select id="s" name="s">
<option value="1">
a
</option>
</select>
<input type="hidden" name="defaults" value="a,1">
3、Action
String s=request.getParameter("m");
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
StringBuffer sb=new StringBuffer();
if("1".equals(s)){
sb.append("a,");
sb.append("1/");
sb.append("b,");
sb.append("2/");
sb.append("c,");
sb.append("3");
}else if("2".equals(s)){
sb.append("aa,");
sb.append("11/");
sb.append("bb,");
sb.append("22/");
sb.append("cc,");
sb.append("33");
}else if("3".equals(s)){
sb.append("aaa,");
sb.append("111/");
sb.append("bbb,");
sb.append("222/");
sb.append("ccc,");
sb.append("333");
}
out.println(sb.toString());
out.flush();
out.close();
return null;
218

被折叠的 条评论
为什么被折叠?



