HTML输入复选框在提交表单时返回'开'而不是'真'

时间:2011-06-22 14:33:15

标签: javascript jquery html

我有一个使用Project Awesome(http://awesome.codeplex.com/)的MVC3应用程序,但我在复选框上得到了一个奇怪的行为。我在模态弹出窗口<input type="checkbox" class="check-box" name="IsDeleted">

中有以下简单的Html

当我提交包含此元素的表单时,其post值为'on'而不是预期的'true'(当选中元素时)。

有人知道这是为什么吗?我假设可能有一些javascript在某处乱搞表单数据,但想检查是否有一些我不知道的HTML。

由于

8 个答案:

答案 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