我有一个JavaScript代码段:
function verifyFrnds(){
var boxes=$(".matchFrnds:checked").length;
//alert(boxes); its value is 50 when you do alert
var call=1;
$(".matchFrnds").each(function(index){
if($(this).is(':checked')){
call++;
var sendData= $(this).val();
$.post('SOME PHP Page',{sendData:sendData},function(data){
//window.location.reload();
});
//alert(call); value is 1
// 1 >=50 should be false but all the time the condition gets true
if(call >= boxes)
{
window.location.reload();
}
}
});
}
问题是自我解释。即使不是这样,条件也会成立。不确定是不是因为它不是将它们视为数字和字符串,而是条件一直都是真的。
答案 0 :(得分:0)
我错过了一些上下文,但试试这个:
function verifyFrnds() {
var boxes = $(".matchFrnds:checked").length;
$(".matchFrnds:checked").each(function(index) {
var sendData= $(this).val();
$.post('SOME PHP Page',{sendData:sendData},function(data){
//window.location.reload();
});
if(index >= boxes-1) {
window.location.reload();
return false;
}
});
}
答案 1 :(得分:-1)
使用下面的代码
if(parseInt(call) >= parseInt(boxes))
{
window.location.reload();
}
答案 2 :(得分:-1)
来自您的帖子回调的window.location.reload()
是否重置您的复选框,因此没有选中?
1将始终大于0
当然这取决于如何在HTML中初始化表单,但我们不会从您的示例中了解这一点。
如果您向我们提供有关您拥有的内容和您想要做的更详细的解释,我们可以为您提供更好的解决方案。