[英]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.