Jquery复选框问题

Jquery复选框问题,jquery,Jquery,我在页面中有一个复选框,在页面加载时它是未选中的。选中复选框时,正确传递值TRUE,但在加载页面时保持复选框未选中时,不会传递值FALSE。我正在使用以下代码来完成此操作 $(document).ready(function () { $('#MemberCountryOptInchkbox').change(function(){ if($(this).attr('checked')){ $(this).val('TRUE');

我在页面中有一个复选框,在页面加载时它是未选中的。选中复选框时,正确传递值TRUE,但在加载页面时保持复选框未选中时,不会传递值FALSE。我正在使用以下代码来完成此操作

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

请注意,JustAnil的评论指出了完美的答案

如果未选中复选框,则在发布表单时,不会发布任何内容-只有选中复选框时才会提交表单


因此,在服务器端,如果request.forms或类似文件中没有复选框的值,则可以假定它没有被选中。

取消选中复选框时,表单不会传递其值。如果不想检查此行为,请使用隐藏字段。

尝试使用单击处理程序而不是更改


当前实现在加载页面时将更改处理程序附加到复选框。但是,这并不意味着代码是在页面加载时执行的。要做到这一点,你应该有以下几点:

$(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');
    }
});

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

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

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

如果未选中该复选框,则会将值FALSE提交给服务器

这就是您要查找的内容。
<input type="checkbox" value="FALSE">...