复选框始终“开启”

海兰!

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

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

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

有人可以帮忙吗? 韩国社交协会。


更新:

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

如何使用uploadify发送表单?

韩国社交协会。

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

复选框的值始终为“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 } 

希望这个解释有所帮助

有一种非常方便的方法可以使用prop函数检查所有这些元素属性,如disabledchecked等。 这也将它转换为布尔值:

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

试试这个

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

更改:

 $('#checkbox').val() 

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

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

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

使用:

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

你可以给

if(jQuery(this).attr(’checked’)){//你必须根据你的函数使用这个选择器它可能是.click .live或者..

谢谢