关于js脚本执行顺序的问题

下面的代码作用是:提交表单前,对表单里的值在后台数据库里进行验证。当后台页面返回值是"true"时,就弹出提示并returnfalse;现在的问题是:去掉最下面的retu... 下面的代码作用是:提交表单前,对表单里的值在后台数据库里进行验证。当后台页面返回值是"true"时,就弹出提示并 return false;

现在的问题是:
去掉最下面的return false之后这段检查代码似乎就没有执行,明明是已经记录过的单号,但却没有任何提示。。。
加上最下面的return false,js代码就可以正常运行,可以提示我这个单号有没有进行过记录,我搞不懂是哪里出了问题???

<form method="post" action="" name="form1" onSubmit="return TiJiaoYanZheng()" >
<input type="submit" name="action" value="提交" />
</form>
function TiJiaoYanZheng() { //提交数据之前的预检查
if (JS_Value != "") {
var xmlhttp; //声明变量
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.responseText == "true") {
alert("这个单号已记录!!!");
return false;
};
};
xmlhttp.open("get", "lao.asp?XingMing=" + JS_Value, true);
xmlhttp.send();
};
return false; //注释掉这一句,检查代码就不起作用,这是为什么?
};
代码作用是:提交表单前,对表单里的值在后台数据库里进行验证。当后台页面返回值是"true"时,就弹出提示并返回 return false;阻止表单的提交
展开
 我来答
yugi111
2017-12-03 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
xmlhttp.open("get", "lao.asp?XingMing=" + JS_Value, true);
上面的true,代表异步提交,于是与你的操作不同步,就好像你看到的没有执行。。。
改为false,同步即可。
xmlhttp.open("get", "lao.asp?XingMing=" + JS_Value, false);
不可以省略、省略默认就是true
然后你可以删掉那个return了。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式