我试图根据列表中的选择显示或隐藏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