主题:关于xmlhttp的问题???
我用xmlhttp写了一段无刷新提交表单的程序,但是有些问题搞不清楚:
var getrs= new ActiveXObject("Microsoft.XMLHTTP");
getrs.open("post","getdateindb.asp?id="+id+"&username="+username+"&name="+name+"&brithday="+brithday+"&idcard="+idcard+"&sex="+sex+"&reason="+reason,false);
getrs.send();
到这里一般是进行判断,当getrs.onreadystatechange改变时,判断getrs.readyState是否等于4,是则用getrs.responseText取值。
但是在应用过程中发现,有的时候,getrs.send();后getrs.readyState不等于4,于是上面的程序执行正常,但是有时候,getrs.send();后getrs.readyState等于4,于是根本就没有getrs.onreadystatechange,于是下面的代码就不会执行?大家对于这个问题是怎么解决的呢?我现在把后面的代码改成这样:
if (getrs.readyState==4){
if (getrs.responseText=="ok"){
obj.disabled=true;
}
}else{
if (getrs.onreadystatechange){
if (getrs.readyState==4){
if (getrs.responseText=="ok"){
obj.disabled=true;
}
}
}
}
觉得这样不太方便,因为如果if (getrs.responseText=="ok"){obj.disabled=true;}这个部分的代码比较长,那这种写法就很麻烦了,如果把这些写成一个单独的函数,虽然代码减少了一半,但是数据传递又很麻烦。
有没有一种写法能让代码简单些?
大家帮忙看一下,谢谢了。
var getrs= new ActiveXObject("Microsoft.XMLHTTP");
getrs.open("post","getdateindb.asp?id="+id+"&username="+username+"&name="+name+"&brithday="+brithday+"&idcard="+idcard+"&sex="+sex+"&reason="+reason,false);
getrs.send();
到这里一般是进行判断,当getrs.onreadystatechange改变时,判断getrs.readyState是否等于4,是则用getrs.responseText取值。
但是在应用过程中发现,有的时候,getrs.send();后getrs.readyState不等于4,于是上面的程序执行正常,但是有时候,getrs.send();后getrs.readyState等于4,于是根本就没有getrs.onreadystatechange,于是下面的代码就不会执行?大家对于这个问题是怎么解决的呢?我现在把后面的代码改成这样:
if (getrs.readyState==4){
if (getrs.responseText=="ok"){
obj.disabled=true;
}
}else{
if (getrs.onreadystatechange){
if (getrs.readyState==4){
if (getrs.responseText=="ok"){
obj.disabled=true;
}
}
}
}
觉得这样不太方便,因为如果if (getrs.responseText=="ok"){obj.disabled=true;}这个部分的代码比较长,那这种写法就很麻烦了,如果把这些写成一个单独的函数,虽然代码减少了一半,但是数据传递又很麻烦。
有没有一种写法能让代码简单些?
大家帮忙看一下,谢谢了。