如何检查 Django 生成的多个复选框的状态?

Posted

技术标签:

【中文标题】如何检查 Django 生成的多个复选框的状态?【英文标题】:How to check status of Django generated multiple checkbox? 【发布时间】:2013-08-21 13:00:28 【问题描述】:

我想知道如何使用 jQuery 从基于 Django 的多个复选框中保存选定选项的名称?似乎我无法选择复选框组...有人可以就我的代码给我建议吗?谢谢!

jsfiddle example

html 代码

<table class="tab_model">
    <tbody>
        <tr>
            <th>
                <label for="id_model_0">Model:</label>
            </th>
            <td>
                <ul>
                    <li>
                        <label for="id_model_0">
                            <input type="checkbox" name="model" value="A" id="id_model_0">Model A</label>
                    </li>
                    <li>
                        <label for="id_model_1">
                            <input type="checkbox" name="model" value="B" id="id_model_1">Model B</label>
                    </li>
                    <li>
                        <label for="id_model_2">
                            <input type="checkbox" name="model" value="C" id="id_model_2">Model C</label>
                    </li>
                </ul>
            </td>
        </tr>
    </tbody>
</table>
<input class="submit" type="submit" value="Submit">

jQuery

var allVals = [];

$('.submit').click(function () 
    $('input[id^="id_model_"] :checked').each(function () 
        allVals.push($(this).val());
    );
    alert(allVals);
);

【问题讨论】:

$('input[name="model"]')? 想通了。我认为一个额外的空间`:checked`会杀死jQuery... @Ariane 您的方法在删除空间后也有效。谢谢! 【参考方案1】:

我会给这些盒子一个类,比如class='the_checkboxes' 然后使用:

$(".the_checkboxes:checkbox:checked").each(function()(
    allVals.push($(this).val());
);

它会更干净(无论如何对我来说)。

【讨论】:

我同意。由于这个多重复选框是从 Django 构建的,因此我需要添加另一个 jQuery 语句来添加一个类。谢谢! 那可能行不通。因为这些类可能还不是 DOM 的一部分。为什么不能从 Django 添加类?你没有使用模板吗? 是的。我正在使用 Django 模板。当然,我可以覆盖现有的模板来添加一个类。

以上是关于如何检查 Django 生成的多个复选框的状态?的主要内容,如果未能解决你的问题,请参考以下文章

django 表单:如何检查模板中的复选框状态

如何在 Django 上将 True 设置为 BooleanField 的默认值?

如何在没有 QCheckBox 框的情况下绘制本机复选标记

向不同部分的单元格添加多个复选标记,并将其状态保存在Swift iOS中

如何在 Swift 3 中保存 UITableViewCell 附件复选标记的状态

[在Java中检查多个复选框状态时如何防止重复的代码?