为什么return false;还是发生提交操作

functioncheckghsb(){varform_chk=true;//首先默认是通过的varxmlhttpobj=createxmlhttp();if(xmlht... function checkghsb() {
var form_chk=true;//首先默认是通过的
var xmlhttpobj = createxmlhttp();
if(xmlhttpobj){
xmlhttpobj.open('get',"huan_chk.asp?sbbm="+ghsb.tmp01.value+"&sbdw=<%=rs("zc_dw")%>&number="+Math.random(),true);
xmlhttpobj.send(null);
xmlhttpobj.onreadystatechange=function(){//客户端监控函数
if(xmlhttpobj.readystate==4){//服务器处理请求完成
if(xmlhttpobj.status==200){//alert('ok');
var html = xmlhttpobj.responseText;//获得返回值
if (html=="0"){alert("\设备编码错误!!");form_chk=false;}
}else{
form_chk=false;
}
}else{
form_chk=false;
}
}
}else{
form_chk=false;
}
alert("111"+form_chk)
alert("222"+form_chk)
if( ghsb.tmp01.value == "" || ghsb.tmp01.value.length != 9 ) {
alert("\请输入设备编码!!")
ghsb.tmp01.focus();
form_chk=false;
}
if( ghsb.tmp02.value == "" ) {
alert("\请输入房间号!!")
ghsb.tmp02.focus();
form_chk=false;
}
if( ghsb.tmp04.value == "" ) {
alert("\请选择处理人员!!")
ghsb.tmp04.focus();
form_chk=false;
}
alert("333"+form_chk)
return false;
}
// -->
我做了个判断,为什么 alert("111"+form_chk) 里form_chk的值是true,随后的alert("222"+form_chk)里就变成false了呢??谁能告诉我啊,困扰我一天了
即使是异步的,那有什么办法解决此问题呢
展开
 我来答
阳光上的桥
2009-05-19 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65793
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
form_chk,我也喜欢写这样的变量名字~

因为xmlHttp是异步的,发送了命令之后语句继续执行,程序在后台慢慢的打开网页,获取数据,改变变量

补充:
上一个帖子我就说过,xmlHttp是在每个字段的onchange事件调用,form_chk的检查在form的onsubmit事件里面做,时间上错开。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式