Jquery - 如何检查所有复选框是否未选中?

Tat*_*rin -1 javascript php checkbox jquery smarty

出于某种原因我的代码不起作用?!我需要检查复选框,如果所有都是"未选中",则启用隐藏字段并将值发送到db,这样我就可以确定未选中复选框.

问题1:为什么我的jquery代码不起作用?

问题2:我需要将已检查或未检查的值记录到DB.我的计划是检查是否在php中没有选中.这是一个好习惯吗?

HTML

<tr class="more_info">
        <th valign="top">Other options:</th>
        {foreach from=$HTML_cOPTIONS key=dbname item=optname}
            {if ! empty($CARINFO[car].{$dbname})}
                <td><input type="checkbox" id="forced_checkbox" name="c_options[]" value="{$dbname}" checked/> {$optname} </br></td>
            {else}
                <td><input type="checkbox" id="forced_checkbox" name="c_options[]" value="{$dbname}"/> {$optname} </br></td>
            {/if}
        {/foreach}
        <input type="hidden" id="forceSendCheckBox" name="c_options[]" value="nocheckboxes"/>
        <input type="button" value="Check" id="check" />
    </tr>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('#check').bind('click',function()
{
    if ($('#forced_checkbox').filter(':not(:checked)').length == 0) {
        console.log('at least one checked');
        $("#forceSendCheckBox").prop('disabled',true);//do not send this field to DB
    } else {
        console.log('nothing checked');
        $("#forceSendCheckBox").prop('disabled',false);//send empty checkboxes
    }
});
Run Code Online (Sandbox Code Playgroud)

UPDATE

这是一个小提琴,它似乎仍然被打破.: - /

http://jsfiddle.net/L5J96/

Bar*_*mar 9

ID必须是唯一的.请改用一个班级.

你的小提琴你有几个问题.首先,您忘记从菜单中选择jQuery框架,因此没有任何jQuery代码可以工作.其次,您将过滤器更改not(:checked)(:checked),但未更改== 0> 0.第三,没有not,你不应该在过滤器选择器周围有括号.第四,您尝试使用输入字段显示消息.text(),但正确的方法是.val().

这是更正后的代码:

$('#check').on('click', function () {
    if ($('.forced_checkbox').filter(':checked').length > 0) {
        $('#forceSendCheckBox').val('at least one checked');
    } else {
        $('#forceSendCheckBox').val('nothing checked');
    }
});
Run Code Online (Sandbox Code Playgroud)

小提琴