我的要求: 选择第一个下拉,获取值,通过js去打开一个url查询出一个xml,然后把查出的值加载到第二个下拉框去.
我想在他查询的时候,我把第二个下拉框暂禁,并且里面显示 loading ... ... ,(在ff里是可以的,但是ie7的时候不这样显示,是不是异步什么的?怎么修改.)js如下://enter
function getdate(obj,list,geturl,par1,showtext)
{
if(obj.value != 0)
{
//enable show
document.getElementById(list).disabled = true;
//loading
listremove(document.getElementById(list));
listAddValue(document.getElementById(list),"0","Loading ...");
//get server
var URL =geturl +"?"+par1+"="+obj.value;
var retCode=openUrl(URL);
getxml(document.getElementById(list),retCode,showtext);
//enable show
document.getElementById(list).disabled = false;
}
else
{
document.getElementById(list).disabled = true;
}
}
//clear all
function listremove(obj)
{
obj.options.length=0;
//for(var i = obj.options.length; i>= 0; --i)
//{
// obj.options.remove(i);
//}
}//add a date
function listAddValue(obj,l_value,l_text)
{
var oOption = document.createElement('OPTION');
oOption.text = l_text;
oOption.value = l_value;
obj.options.add(oOption);
}//read xml and add list value
function getxml(obj,xmldata,showtext)
{
var xmlDoc;
var browse="";
if (window.ActiveXObject)
{
xmlDoc= new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async=false;
xmlDoc.loadXML(xmldata);
browse="ie";
}
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc= document.implementation.createDocument('', '', null);
var oParser=new DOMParser();
xmlDoc=oParser.parseFromString(xmldata,"text/xml");
browse="ff";
}
listremove(obj);
listAddValue(obj,"0",showtext);
if(browse=="ff")
{
var cNodes = xmlDoc.getElementsByTagName("Root");
for(j=0;j<cNodes.length;j++)
{
var servername=xmlDoc.getElementsByTagName("ColName")[j].childNodes[0].nodeValue;
var serverid=xmlDoc.getElementsByTagName("ColID")[j].childNodes[0].nodeValue;
listAddValue(obj,serverid,servername);
}
}
else if(browse == "ie")
{
var state = xmlDoc.readyState;
if (state == 4)
{
var oNodes = xmlDoc.selectNodes("//Table/Root");
for(j=0;j<oNodes.length;j++)
{
var servername=oNodes[j].childNodes[0].text;
var serverid=oNodes[j].childNodes[1].text;
listAddValue(obj,serverid,servername);
}
}
}
}//open url and get value
function openUrl(url)
{
if(window.XMLHttpRequest)
{
objxml = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
objxml = new ActiveXObject("Msxml2.XMLHTTP");
}
objxml.open("GET",url,false);
objxml.send("");
retInfo=objxml.responseText;
if (objxml.status== "200 ")
{
return retInfo;
}
else
{
return "";
}
}
我想在他查询的时候,我把第二个下拉框暂禁,并且里面显示 loading ... ... ,(在ff里是可以的,但是ie7的时候不这样显示,是不是异步什么的?怎么修改.)js如下://enter
function getdate(obj,list,geturl,par1,showtext)
{
if(obj.value != 0)
{
//enable show
document.getElementById(list).disabled = true;
//loading
listremove(document.getElementById(list));
listAddValue(document.getElementById(list),"0","Loading ...");
//get server
var URL =geturl +"?"+par1+"="+obj.value;
var retCode=openUrl(URL);
getxml(document.getElementById(list),retCode,showtext);
//enable show
document.getElementById(list).disabled = false;
}
else
{
document.getElementById(list).disabled = true;
}
}
//clear all
function listremove(obj)
{
obj.options.length=0;
//for(var i = obj.options.length; i>= 0; --i)
//{
// obj.options.remove(i);
//}
}//add a date
function listAddValue(obj,l_value,l_text)
{
var oOption = document.createElement('OPTION');
oOption.text = l_text;
oOption.value = l_value;
obj.options.add(oOption);
}//read xml and add list value
function getxml(obj,xmldata,showtext)
{
var xmlDoc;
var browse="";
if (window.ActiveXObject)
{
xmlDoc= new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async=false;
xmlDoc.loadXML(xmldata);
browse="ie";
}
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc= document.implementation.createDocument('', '', null);
var oParser=new DOMParser();
xmlDoc=oParser.parseFromString(xmldata,"text/xml");
browse="ff";
}
listremove(obj);
listAddValue(obj,"0",showtext);
if(browse=="ff")
{
var cNodes = xmlDoc.getElementsByTagName("Root");
for(j=0;j<cNodes.length;j++)
{
var servername=xmlDoc.getElementsByTagName("ColName")[j].childNodes[0].nodeValue;
var serverid=xmlDoc.getElementsByTagName("ColID")[j].childNodes[0].nodeValue;
listAddValue(obj,serverid,servername);
}
}
else if(browse == "ie")
{
var state = xmlDoc.readyState;
if (state == 4)
{
var oNodes = xmlDoc.selectNodes("//Table/Root");
for(j=0;j<oNodes.length;j++)
{
var servername=oNodes[j].childNodes[0].text;
var serverid=oNodes[j].childNodes[1].text;
listAddValue(obj,serverid,servername);
}
}
}
}//open url and get value
function openUrl(url)
{
if(window.XMLHttpRequest)
{
objxml = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
objxml = new ActiveXObject("Msxml2.XMLHTTP");
}
objxml.open("GET",url,false);
objxml.send("");
retInfo=objxml.responseText;
if (objxml.status== "200 ")
{
return retInfo;
}
else
{
return "";
}
}
function listAddValue(obj,l_value,l_text)
{
var oOption = document.createElement('OPTION');
oOption.text = l_text;
oOption.value = l_value;
obj.options.add(oOption);
}我给出的代码,试一试。//add a date
function listAddValue(obj,l_value,l_text)
{
var oOption = new Option(l_text,l_value);
if(window.event){
obj.options.add(oOption);
}else{
obj.options.add(oOption,null);
}
} 如果可以,请回复。=== 结贴,给分 ===
得到满意的答案,立即结贴给分,是一种良好的习惯和美德
这个是加载数据方法.//enable show
document.getElementById(list).disabled = true;
//loading
listremove(document.getElementById(list));
listAddValue(document.getElementById(list),"0","Loading ...");
//get server
var URL =geturl +"?"+par1+"="+obj.value;