<script>
function changsheng(va) {
if(va!='0')
{
var city = document.getElementById("city");
city.disabled=false;
var qu = document.getElementById("qu");
qu.disabled=true;
var f=document.getElementById("qu");
f.options.length=1;
var url="/Handler.ashx?type=sheng&id="+va;
send_request("GET",url,null,"text",populateClass3);
}
}
function populateClass3(ddd){
var f = document.getElementById("city");
if(http_request.readyState==4){
if(http_request.status==200){
var list=http_request.responseText;
var classList=list.split("|");
f.options.length=1;
for(var i=0;i<classList.length;i++){
var tmp=classList[i].split(",");
f.add(new Option(tmp[1],tmp[0]));
}
}else{
alert("您所请求的页面有异常1。");
}
}
}
function changshi(va)
{
if(va!='0')
{
var qu = document.getElementById("qu");
qu.disabled=false;
var url="/Handler.ashx?type=shi&id="+va;
send_request("GET",url,null,"text",populateClass4);
}
}
function populateClass4(){
var f=document.getElementById("qu");
if(http_request.readyState==4){
if(http_request.status==200){
var list=http_request.responseText;
var classList=list.split("|");
f.options.length=1;
for(var i=0;i<classList.length;i++){
var tmp=classList[i].split(",");
f.add(new Option(tmp[1],tmp[0]));
}
}else{
alert("您所请求的页面有异常2。");
}
}
}
</script>
function changsheng(va) {
if(va!='0')
{
var city = document.getElementById("city");
city.disabled=false;
var qu = document.getElementById("qu");
qu.disabled=true;
var f=document.getElementById("qu");
f.options.length=1;
var url="/Handler.ashx?type=sheng&id="+va;
send_request("GET",url,null,"text",populateClass3);
}
}
function populateClass3(ddd){
var f = document.getElementById("city");
if(http_request.readyState==4){
if(http_request.status==200){
var list=http_request.responseText;
var classList=list.split("|");
f.options.length=1;
for(var i=0;i<classList.length;i++){
var tmp=classList[i].split(",");
f.add(new Option(tmp[1],tmp[0]));
}
}else{
alert("您所请求的页面有异常1。");
}
}
}
function changshi(va)
{
if(va!='0')
{
var qu = document.getElementById("qu");
qu.disabled=false;
var url="/Handler.ashx?type=shi&id="+va;
send_request("GET",url,null,"text",populateClass4);
}
}
function populateClass4(){
var f=document.getElementById("qu");
if(http_request.readyState==4){
if(http_request.status==200){
var list=http_request.responseText;
var classList=list.split("|");
f.options.length=1;
for(var i=0;i<classList.length;i++){
var tmp=classList[i].split(",");
f.add(new Option(tmp[1],tmp[0]));
}
}else{
alert("您所请求的页面有异常2。");
}
}
}
</script>
function $(id){
return document.getElementById(id);
}document.getElementById("city"); 就可以写成$("city"),可以省很多代码。
var f=document.getElementById("qu");
你在还多方法中都用了,可以考虑将document.getElementById("qu")提出来作为一个全局变量,
可以考虑用apply和闭包还可以简化,好好理解一下javascript的闭包,面向对象的原理。p.s.
Just advice.
function $(id)
{
typeof id == "string" ? document.getElementById(id) : id;
}//增加type参数区别不同的请求
function change(type, va)
{
if (type && va)//va!='0'等同于va,进行了类型转换
{
var bOK = true;
switch (type) //不清楚LZ的业务逻辑,这里应该还可以简化,LZ自己看吧
{
case "sheng":
var city = $("city");
city.disabled=false;
var qu = $("qu");
qu.disabled=true;
var f=$("qu"); //这里2次的ID都是qu,不明白,估计是LZ写错了
f.options.length=1;
var r = c; //给回调函数用的
break;
case "shi":
var qu = $("qu");
qu.disabled=false;
var r = qu; //给回调函数用的
break;
default:
bOK = false;
}
if (bOK)
{
var url="/Handler.ashx?type=" + type + "&id="+va;
send_request("GET",url,null,"text",function (){ //匿名函数传递参数
populate(r);
});
}
}
}function populate(f){ //f通过参数获得
//var f = document.getElementById("city");
if(http_request.readyState==4)
{
if(http_request.status==200)
{
var list=http_request.responseText;
var classList=list.split("|");
f.options.length=1;
for(var i=0;i<classList.length;i++)
{
var tmp=classList[i].split(",");
f.add(new Option(tmp[1],tmp[0]));
}
}
else
{
//这里的异常出错对用户来说都是一样的,返回1或者2只是给程序员看的
//如果真要区分,可以靠f.name或其他f的属性来区分
alert("您所请求的页面有异常。");
}
}
}