jq中if语句被跳过,怎么回事?
2017-09-11
展开全部
其实代码没问题,只是你还没理解js的运行机制;其实message==“true”时,if里面的语句是执行了的;你可以删掉"window.location.replace(location);"这句去测试,肯定每次都会执行,但是加上这句后,就会出现偶尔不执行的假象;submit方法你可以理解为它是一个新线程,这个线程刚启动,正准备提交数据时,结果主线程运行到了"window.location.replace(location);"这句,导致页面刷新,那自然页面中的js提交任务就被终止了;是有时执行,有时又不执行;就是因为两个线程的任务执行哪一个早的问题;当然了,js是没有线程的,但是你可以这么理解;另外document.getElementById('toform').submit();提交后页面本身就会跳转,所以你让服务器端处理完了之后直接跳转到location,我也大概知道你为什么这么写,看样子你是在防止用户后退后重新提交;建议你学习下jquery的表单异步提交,以及回调函数;就是当提交完成后再运行window.location.replace(location);这行代码;大概是这个样子:$.post("url",//提交地址{key1:value1,key2:value2},//要提交的数据function(data){window.location.replace(location);});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询