我試圖根據列表中的選擇顯示或隱藏div。我不太清楚如何處理傳遞給函數的div的observable,以便它可以返回true或false值來顯示或隱藏div。從knockout.js更新選擇div
如果從列表中選擇了「美國運通」,我想顯示「postalCodeDiv」,否則將其隱藏。
我有一個撥弄它here
<label for="Card Type">Card Type</label>
<select data-bind='value: cardType, options: $root.cardTypeList, optionsText: "type"'>
</select>
<div data-bind="visible: postalCodeDiv()">
<label for="PostalCode">Postal Code (required for AMEX)
</label>
</div>
這裏是JavaScript的
function cardTypeSelection(cardType,postalCodeDiv){
var self = this;
self.cardType = cardType;
self.postalCodeDiv = postalCodeDiv;
if(self.cardType == "American Express"){
return self.postalCodeDiv(true);
}
else{
return self.postalCodeDiv(false);
}
}
function MakePaymentViewModel(cardType) {
var self = this;
self.postalCodeDiv = ko.observable(false);
self.cardTypeList = [
{type: '-'},
{type: 'Visa'},
{type: 'MasterCard'},
{type: 'American Express'}
];
self.cardType = ko.observableArray([
new cardTypeSelection(self.cardTypeList[0], self.postalCodeDiv)
]);
}
ko.applyBindings(new MakePaymentViewModel());
而且在它的選擇,我將它傳遞給函數基礎上的價值,以啓用/禁用選擇
謝謝,完美的作品。我只是基於這個來自淘汰賽網站的一個例子,所以我不太清楚我在做什麼! – user1104854