问题描述:假如在一个select中有“水果(热带水果,温带水果等)”属性,选择某一类水果如“热带水果”,如何通过javascript控制select的onchange在另一个select中显示属于热带水果的子项如:苹果
解决方案 »
- 关于自己编写类导出JAR包裹不能使用的问题
- 请教这个在页面上字符串验证的正则表达式怎么写
- 一个Java的简单问题,关于Flex的
- 字符串转换时间问题!!
- 哪位指点一下用什么读写xml好
- bean连接数据库调用以后怎样关闭连接呢? 大虾帮忙,解决理解给分
- Unsupported syntax for refreshRow()如何解决?
- JSP保存图片到数据库,各位帮我看看错在哪?
- 写了一个操作数据库的问题:用火狐可以添加成功,IE不成功,不知道怎么回事?
- 括弧是不是应该先转换成别的符号呢?
- 象网易163博客那样编辑页面则么做的 页面的模块能托动定制的 有人做过么?急死小妹了
- 请各位高手指点,急!!谢谢
http://web.mblogger.cn/jamesfancy/posts/28200.aspx
<option value="-1">
未选择
</option>
<c:forEach items="${bigTypeList}" var="temp">
<option value="${temp.typeId}">
${temp.typeName}
</option>
</c:forEach>
</select>
<br/>
<select name="typeId">
<option value="-1">
未选择
</option>
</select><script type="text/javascript">
//创建XMLHttpRequest对象
function createXMLHttpRequest()
{
//Mozilla 浏览器
if(window.XMLHttpRequest)
{
XMLHttpReq = new XMLHttpRequest();
}
// IE浏览器
else if (window.ActiveXObject)
{
try
{
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
}
//发送请求函数
function getSmallType(bigTypeId)
{
if(bigTypeId == -1)
{
var typeId = document.forms[0].typeId;
//清空select所有option选项
typeId.options.length = 0;
var option = document.createElement("option");
option.text = "未选择";
option.value = -1;
typeId.options.add(option);
return false;
}
createXMLHttpRequest();
XMLHttpReq.onreadystatechange = getFinsh;
var url = "getsmalltype.do?bigtypeid="+bigTypeId;
XMLHttpReq.open("post",url , true);
XMLHttpReq.send(null);
}
//处理返回响应函数
function getFinsh()
{
if (XMLHttpReq.readyState == 4)
{
if (XMLHttpReq.status == 200)
{
if(window.ActiveXObject)
{
var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
}
else
{
if(document.implementation && document.implementation.createDocument)
{
var xmlDom=document.implementation.createDocument("","doc",null);
}
}
xmlDom.async = false;
xmlDom.loadXML(XMLHttpReq.responseText);
var typeId = document.forms[0].typeId;
//清空select所有option选项
typeId.options.length = 0;
var smallTypes = xmlDom.getElementsByTagName("smalltypes/smalltype");
//包含子类信息
if(smallTypes.length != 0)
{
var option = document.createElement("option");
option.text = "未选择";
option.value = -1;
typeId.options.add(option);
for(var i = 0;i < smallTypes.length;i ++)
{
//子类ID
var typeIdText = smallTypes[i].firstChild.text;
//子类名
var typeNameText = smallTypes[i].lastChild.text;
//添加子类信息到下拉列表
var option = document.createElement("option");
option.text = typeNameText;
option.value = typeIdText;
typeId.options.add(option);
}
}
else
{
var option = document.createElement("option");
option.text = "无子类";
option.value = document.forms[0].bigTypeSelect.options(document.forms[0].bigTypeSelect.selectedIndex).value;
typeId.options.add(option);
}
}
else
{
alert("Error data:\n"+ XMLHttpReq.statusText);
}
}
}------------------------
提交到getsmalltype.do后根据bigtypeid返回所属子类ID+子类NAME集合组装成xml返回到页面。
这个跟你的要求类似,是我一个月前的帖子
你可以参考下