ノックアウト初心者です。私は2つのViewModelを持っています
最初のものには、自宅と郵送先の 2 つの住所があります。
var EntityViewModel = function (clientId, taxYear) {
var self = this;
self.id = ko.observable(null);
self.name = ko.observable('').extend({
required: { message: ' Name is required' },
validation: { validator: maxLength, message: ' Name must be less than 65 characters', params: 65 }
});
self.homeAddress = new AddressViewModel();
self.mailingAddress = new AddressViewModel();
};
2つ目はアドレスビューモデルです。私がやろうとしているのは、状態が -1 の場合、国のドロップダウンリストが有効になり、状態が > 0 の場合、国のドロップダウンリストが無効になり、countryId が米国である 1 に設定されることです。しかし、問題は、状態を変更するたびに、本国と郵送国の両方が有効または無効になることです。どうすれば修正できますか?
var AddressViewModel = function () {
var self = this;
self.address1 = ko.observable('');
self.address2 = ko.observable('');
self.city = ko.observable('');
self.zipCode = ko.observable('');
self.stateId = ko.observable(null);
self.countryId = ko.observable(null);
self.enableState = ko.observable(false);
self.enableCountry = ko.observable(false);
self.stateId.subscribe(function (newValue) {
if (newValue <= 0) {
self.enableState(true);
self.countryId(null);
} else {
self.enableCountry(false);
self.countryId(1);
}
});
};
ところで、別の郵送先住所のチェックボックスもあります。このチェックボックスをオフにすると、郵送先住所全体が無効になります。チェックボックスがオンの場合、編集できます。
コードを jsFiddler にアップロードします。修正を手伝ってください。