我在页面中有一个复选框,在页面上加载它是未选中的。检查复选框时,正确传递值TRUE,但是当在页面加载时未选中该复选框时,值FALSE未被传递。我使用以下代码来执行此操作。
$(document).ready(function () {
$('#MemberCountryOptInchkbox').change(function(){
if($(this).attr('checked')){
$(this).val('TRUE');
}else{
$(this).val('FALSE');
}
});
});
答案 0 :(得分:0)
请注意,JustAnil的评论指向了IMO的完美答案。
如果未选中复选框,则在发布表单时,不会发布任何内容 - 只有在选中该复选框时才会提交。
所以服务器方面,如果request.forms或类似的复选框没有值,那么你可以假设它没有被检查。
答案 1 :(得分:0)
取消选中复选框后,表单不会传递其值。如果您不想检查此行为,请使用隐藏字段。
答案 2 :(得分:0)
尝试使用click
处理程序而不是change
$('#MemberCountryOptInchkbox').click(function(){
答案 3 :(得分:0)
您的当前实现会在加载页面时将更改处理程序附加到您的复选框。但是,这并不意味着代码在页面加载时执行。要做到这一点,你应该有以下几点:
$(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');
}
});
这可确保代码在页面加载时也执行一次。
答案 4 :(得分:0)
解决方案对您的问题很简单,您可以在复选框中使用以下标记
<input type="checkbox" value="FALSE">...
如果未选中该复选框,则会向服务器提交值“FALSE”