我是新來的淘汰賽js和感覺我可能不會理解這裏的東西。我基本上有一個MVC複選框,選中時會更新另一個依賴於其他字段計算的字段。除了複選框之外,我可以獲取總金額字段以更新所有其他字段,並且我不確定我做錯了什麼。我懷疑這是因爲我沒有傳入self
,但我不確定我如何在最終等式中將條件值傳遞給它,但我不確定爲什麼會出現這種情況。也許有人可以對此有所瞭解。複選框沒有更新價值淘汰賽js
我還注意到,如果我將變量計算到變量中並返回最終變量,則初始值將正確顯示,但是最終沒有任何內容會使最終字段更新。是有原因的,或者我做錯了什麼?
這裏是我使用
<div class="form-group-sm">
<label for="bookingType">International Property</label>
<div class="checkbox">
@Html.EditorFor(model => model.IsInternationalProperty, new { @id = "internationalProperty", @value = true, @data_bind = "checked: internationalProperty" })
<label style="width: 200px; text-align: left">Select if it is outside the US</label>
</div>
</div>
而且這裏的複選框標記是我knockoutjs查看模型
var viewModel = function (data) {
var self = this;
self.internationalProperty = ko.observable();
self.vendorBookingAmount = ko.observable(2.00);
self.transactionFeesDue = ko.observable(0.00);
self.transactionFeesWaived = ko.observable(0.00);
self.iceBookingFees = ko.observable(0.00);
self.vacationCashRedeemed = ko.observable(0.00);
self.pointsDiscount = ko.observable(0.00);
debugger;
var international = (self.internationalProperty() == true) ? 0.05 : 0;
self.memberBalance = ko.computed(function() {
return (Number(self.vendorBookingAmount()) + Number(self.transactionFeesDue()) -
Number(self.transactionFeesWaived()) + Number(self.iceBookingFees()) -
Number(self.vacationCashRedeemed()) - Number(self.pointsDiscount())) +
(Number(self.vendorBookingAmount()) + Number(self.transactionFeesDue()) -
Number(self.transactionFeesWaived()) + Number(self.iceBookingFees()) -
Number(self.vacationCashRedeemed()) - Number(self.pointsDiscount()))*international;
}, self);
};
ko.applyBindings(new viewModel());
嗯,它似乎仍然沒有工作。 @Voyta,是否有我需要包含的更新綁定?我知道對於放置'',valueUpdate:'afterkeydown'的文本框,可能有類似的複選框綁定? – Jand
查看最新的答案 – Voyta
It works!不知道我是否會想出來,謝謝! – Jand