先问一下问题,用JS实现ajax请求,选择同步方式。这种情况下,会不会有某些浏览器不支持这种做法,也就是说不会等待同步执行完毕而继续执行下面的代码了?另外,在JS里,浮点a=0.00 是否可以写成 if(a==0)这种形式,会不会有某些浏览器不支持?这里如果用parseInt(a)不满足我的需求,那应该如何写?
先问一下问题,用JS实现ajax请求,选择同步方式。这种情况下,会不会有某些浏览器不支持这种做法,也就是说不会等待同步执行完毕而继续执行下面的代码了?另外,在JS里,浮点a=0.00 是否可以写成 if(a==0)这种形式,会不会有某些浏览器不支持?这里如果用parseInt(a)不满足我的需求,那应该如何写?
if(!a){
alert(1)
}else{
alert(2)
}
你那样写也可以,JS会做类型转换。
谢谢
我贴一下代码说明一下
if( pay == 0 ){
$.ajax({
type: "GET",
url: ***********,
dataType:"text",
async: false,
success: function(data){
//************
}
});
//************
location.replace(**********);
return false;
} //********
return true;
现在发现的情况是极少人运行时,pay是0.00时,但return的竟然为true,原因是什么?跟location.replace会不会有关系?
我现在暂时把后面的 return true 放到了else里了。想知道原因
弹出是0.00,我刚才换成!pay这种写法,在火狐上试过是不行的,pay是从数据库里拿出来的, 未经过转型
具体原因看不出来啊
如果是pay=0.00; 那么pay==0 pay===0 和!pay都是true
如果是pay="0.00" 那么pay==0 true pay===0 false !pay false
//smarty,从数据库里拿出来的$order_info
<input type="hidden" value="<{$order_info.pay_amount}>" name="pay_amount" id="pay_amount" />
var pay_amount = $("#pay_amount").val();那应该是第二者,也就是字符串了,那我的写法是对的,pay==0。但出现极少数用户遇到不进入if(pay==0)这个分支,难道和浏览器有关?
用 Number 转一下吧