1
Имея этот элемент (обратите внимание на вычисленное поле) fullNumber
не допускает дубликатов в pureComputed элемент
var NumberField = function() {
var self = this;
self.maskFormat = "0";
self.firstNumber = ko.observable("");
self.secondNumber = ko.observable("");
self.thirdNumber = ko.observable("");
self.fourthNumber = ko.observable("");
self.fifthNumber = ko.observable("");
self.fullNumber = ko.pureComputed(function() {
return [
self.firstNumber,
self.secondNumber,
self.thirdNumber,
self.fourthNumber,
self.fifthNumber ].map(ko.unwrap);
}
}
Тогда я использую это нравится:
<div class="numberFields" data-bind="with: numbers">
<input id="0" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: firstNumber, maxNumber: 68">
<input id="1" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: secondNumber, maxNumber: 68">
<input id="2" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: thirdNumber, maxNumber: 68">
<input id="3" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: fourthNumber, maxNumber: 68">
<input id="4" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: fifthNumber, maxNumber: 68">
</div>
Как я могу убедиться, нет повторяющихся значений в fullNumber
?
Что вы хотите делать, когда есть * есть * дубликат? Замени это? Вернуть 'null'? – user3297291
@ user3297291 просто оставьте поле пустым (или null), пожалуйста, также проверьте обновление, я добавил html также – joc
underscore js имеет функцию uniq. http://underscorejs.org/ _.uniq ([1, 2, 1, 4, 1, 3]); => [1, 2, 4, 3] –