复选框始终“开启”
海兰!
当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
函数检查所有这些元素属性,如disabled
, checked
等。 这也将它转换为布尔值:
$('#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或者..
谢谢