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