繁体   English   中英

流星复选框组-至少选择了一个复选框

[英]Meteor checkbox group - At least one checkbox selected

这是我到目前为止的复选框。 我想一直选中至少一个复选框-如何做到这一点?

解:

HTML:

    <form>
        <ul>
            {{#each checkbox}}
            <li>
                <input type="checkbox" checked="{{checked}}" class="toggle-checked"> {{name}}: {{checked}}
            </li>
            {{/each}}
        </ul>
    </form>

JS:

    Cbtest = new Mongo.Collection('cbtest');

    Template.checkbox.helpers({
        checkbox: function () {
            return Cbtest.find();
        }
    });

    Template.checkbox.events({
        "click .toggle-checked": function (event) {
            var self = this;
            //deactivate the checkboxes visually
            event.preventDefault();
            Meteor.call("setChecked", self._id, !self.checked);
        }
    });

    Meteor.methods({
        setChecked: function (checkboxId, setChecked) {
            //deactivate the checkbox value change in the database
            if (!setChecked && CheckboxResources.find({
                checked: true
            }).count() === 1)
            return;
            Cbtest.update(checkboxId, {
                $set: {
                    checked: setChecked
                }
            });
        }
    });

我想避免使用jQuery,而只使用javascript和underscorejs。

提前致谢! VIN

您可以确保在更新当前项目以check: false之前至少检查两个项目check: false

Meteor.methods({
    setChecked: function (checkboxId, setChecked) {
        if (!setChecked && Cbtest.find({checked: true}).count() === 1)
          return; // or throw error
        Cbtest.update(checkboxId, {
            $set: {
                checked: setChecked
            }
        });
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM