我有一个使用Project Awesome(http://awesome.codeplex.com/)的MVC3应用程序,但我在复选框上得到了一个奇怪的行为。我在模态弹出窗口<input type="checkbox" class="check-box" name="IsDeleted">
当我提交包含此元素的表单时,其post值为'on'而不是预期的'true'(当选中元素时)。
有人知道这是为什么吗?我假设可能有一些javascript在某处乱搞表单数据,但想检查是否有一些我不知道的HTML。
由于
答案 0 :(得分:50)
将复选框value
属性设置为true
,您的帖子值中会显示true
。
答案 1 :(得分:4)
我认为这是特定于浏览器的,当值未定义时要发送什么。您需要在无线电/复选框上定义value
属性,以确保将传递给您的内容。我建议value="1"
答案 2 :(得分:4)
默认设置data-val="true" and value="true"
如果选中复选框,则返回true
答案 3 :(得分:0)
当然你应该检查它是否已经设置 - 它发送的值是无关紧要的,如果没有检查,那么当你发布POST时就什么也没发送。
答案 4 :(得分:0)
如果选中此复选框,则是否选中“复选框”。将“隐藏字段”设置为true,否则将隐藏字段设置为false。
$('#hiddenFieldId').val($('#CheckBoxId').attr('checked')=='checked')
答案 5 :(得分:-1)
在HTML中,在复选框上方添加输入类型=“隐藏”:
<input name="active" id="activeVal" type="hidden">
<input id="active" type="checkbox">
然后,添加如下脚本:
$('#activeVal').val($('#active').is(':checked'));
$('#active').change(function() {
$('#activeVal').val($('#active').is(':checked'));
});
当你这样做的时候。在jQuery中$('#your-form').serialize()
,当您选中active: true
或取消选中active: false
答案 6 :(得分:-4)
使用jQuery进行跨浏览器决策。无论如何它将返回 true 或 false 。
$('#check-box-id').attr('checked' ) == true
如果您的复选框具有ID check-box-id 。对于您当前的版本,请使用下一个(按类名选择):
$('.check-box').attr('checked' ) == true
答案 7 :(得分:-4)
使用jQuery
var out=$('.check-box').is('checked')
如果选中复选框= true else out = false