Ich möchte ein Checklisten-Steuerelement implementieren, wo immer nur ein Element ausgewählt werden kann. Im Grunde wie eine Optionsfeldgruppe, der einzige Unterschied ist, dass die Elemente deaktiviert werden können. Ich habe eine benutzerdefinierte Bindung erstellt, um dies zu erreichen, sie funktioniert in Bezug auf das Deaktivieren des Optionsfelds, jedoch wird der Wert im Ansichtsmodell nicht auf null gesetzt.Deaktivieren Sie das Optionsfeld mit KnockoutJS
ko.bindingHandlers.radioCheckbox =
{
init: function (element, valueAccessor, allBindings) {
ko.bindingHandlers.value.init(element, valueAccessor, allBindings);
},
update: function (element, valueAccessor, allBindings) {
(function (element, valueAccessor, allBindings) {
$(element).mousedown(function(e) {
e.preventDefault();
if ($(this).is(':checked')) {
allBindings().checked(null);
} else {
$(this).prop('checked', true);
}
}).click(function(e) {
e.preventDefault();
});
})(element, valueAccessor, allBindings);
}
};
Es gibt ähnliche Frage, aber die akzeptierte Lösung hat das gleiche Problem wie ich. link