2011-12-01 148 views
0

我有一个复选框在一个页面和页面加载它没有选中。当复选框被选中时,值TRUE被正确传递,尽管当页面加载时复选框未被选中时,值FALSE没有被传递。我正在使用下面的代码来做到这一点。Jquery复选框问题

$(document).ready(function() { 
    $('#MemberCountryOptInchkbox').change(function(){ 
     if($(this).attr('checked')){ 
       $(this).val('TRUE'); 
     }else{ 
       $(this).val('FALSE'); 
     } 
    }); 
}); 
+2

这这将值“FALSE”提交到服务器是你想要的。 http://stackoverflow.com/questions/426258/how-do-i-check-a-checkbox-with-jquery-or-javascript – Anil

回答

0

请注意,JustAnil的评论指向IMO的完美答案。

如果未勾选复选框,则在发布表单时,不会发布任何内容 - 只有在复选框被选中时才会提交。因此,在服务器端,如果您的request.forms或类似的复选框没有值,那么您可以假定它没有被检查。

0

当一个复选框被取消选中时,它的值不会被表单传递。如果您不想检查这种行为,请使用隐藏字段。

0

尝试使用的change

$('#MemberCountryOptInchkbox').click(function(){ 
0

click处理程序,而不是在加载页面时,您的当前实现高度的变化处理程序到您的复选框。但是,这并不意味着代码在页面加载时执行。为了实现这个目标,你应该沿着线的东西:

$(document).ready(function() { 

    $('#MemberCountryOptInchkbox').change(function(){ 
     if($(this).attr('checked')){ 
      $(this).val('TRUE'); 
     }else{ 
      $(this).val('FALSE'); 
     } 
    }); 

    if($(this).attr('checked')){ 
     $(this).val('TRUE'); 
    }else{ 
     $(this).val('FALSE'); 
    } 
}); 

这可以确保在页面加载时也执行一次的代码。

0

解决方法很简单,您的问题,您可以使用下面的标记为您的复选框

<input type="checkbox" value="FALSE">... 

如果该复选框未选中