如何获取选择的选择值?
HTML:
<select data-bind="options: customers, optionsText: 'customer_display_name', optionsValue: 'customer_id'"></select>
Javascript:
var customers = <?php echo json_encode($this->customers); ?>;
self.customers = ko.mapping.fromJS(customers);
如何在ViewModel中访问当前选择的“ optionsText”或“ optionsValue”?
self.customers...?
答案 0 :(得分:0)
您可以这样做:
function ViewModel() {
this.selectedCustomer = ko.observable();
this.customers = [{
customer_display_name: "Bob",
customer_id: 10
}, {
customer_display_name: "Joseph",
customer_id: 20
},{
customer_display_name: "Charlie",
customer_id: 30
}];
// Only for debug purposes
this.selectedCustomer.subscribe(function (newValue) {
console.info(newValue);
}, this);
}
ko.applyBindings(new ViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select data-bind="options: customers, optionsText: 'customer_display_name', optionsValue: 'customer_id', value: selectedCustomer"></select>
一个可观察的selectedCustomer拥有当前所选客户的'customer_id'属性值。如果希望selectedCustomer保留当前所选客户的整个对象,只需从HTML代码中删除属性“ optionsValue:'customer_id'”。