复选框始终“开启”

时间:2011-07-06 19:54:52

标签: jquery asp.net-mvc-3 uploadify

HY!

当Uploadify将文件发送到操作时,我需要知道是否检查了checbox,所以我做了:

    $('#uploaded').uploadify({
        'uploader': '/uploadify.swf',
        'cancelImg': '/cancel.png',
        'script': '/Interaction/Upload',
        'multi': true,
        'auto': false,
        'method': 'post',
        'scriptData': {'Checkbox': $('#checkbox').val()},
    });

但我离开了一个“开”的价值。无论是否被检查。

任何人都可以帮忙吗? TKS。


更新

我意识到uploadify在页面加载时获取复选框。这意味着如果我更改复选框(或任何其他类型的输入),uploadify将获得初始值,在这种情况下,“checkbox = false”

如何使用uploadify发送表单?

韩国社交协会

9 个答案:

答案 0 :(得分:52)

尝试$('#checkbox').is(':checked')

答案 1 :(得分:22)

复选框的值始终为“on”。仅当选中复选框时,HTML表单才会将值发送到服务器。如果未选中该框,则将不存在请求参数。这种语义显然是为了最小化复选框和单选按钮之间的差异。

HTML表单实现以下语义:

if ($('#mycheckbox').is(':checked')) {
    payload['mycheckbox'] = $('#mycheckbox').val();
}

你可以在Ajax中模仿这个语义,也可以直接发送'checked'标志,如下所示:

payload['mycheckbox'] = $('#mycheckbox').is(':checked');

我建议模仿HTML Form语义。无论客户端做什么,我都会在服务器代码中推荐以下内容:

if mycheckbox param exists and its value is either 'true' or 'on' {  // pseudo code of course
    // mycheckbox is checked
} else {
    // mycheckbox is unchecked
}

希望这个解释有所帮助。

答案 2 :(得分:14)

使用disabled函数检查checkedprop等所有元素属性非常方便。这也将它转换为boolean:

$('#checkbox').prop('checked'); // -> true/false
$('#checkbox').prop('disabled'); // -> true/false

答案 3 :(得分:10)

试试这个

$('#checkbox').is(':checked')

答案 4 :(得分:7)

变化:

$('#checkbox').val()

$('#checkbox').attr('checked')

答案 5 :(得分:1)

我遇到了同样的问题并找到了解决方案:

if($("input[name='yourcheckbox']").is(':checked')) {
   console.log('chb checked');
} else {
   console.log('chb not checked');
}

答案 6 :(得分:1)

var checkboxValue = $('#id').prop('checked');

答案 7 :(得分:0)

使用:

$('#checkbox').attr('checked')

答案 8 :(得分:-1)

你可以提供

如果(jQuery的(本).attr( '检查')){ //你必须根据你的功能使用这个选择器.click .live或者..

由于