knockout.js - knockoutjs 如何获取选中的选项arrayObject

标签 knockout.js knockout-2.0

我想获取选定的选项对象

    <select data-bind="options: availableCountries,
                       value: selectedCountry, event: { select: onSelect}"></select>


<script type="text/javascript">
    // Constructor for an object with two properties
    var Country = function(name, population) {
        this.countryName = name;
        this.countryPopulation = population;   
    };       

    var viewModel = {
        availableCountries : ko.observableArray([
            new Country("UK", 65000000),
            new Country("USA", 320000000),
            new Country("Sweden", 29000000)
        ]),
        selectedCountry : ko.observable(), // Nothing selected by default
        onSelect: function(){
              console.log(viewModel.selectedCountry)
              // it is showing just an country name and what i what is whole object
              // e.g. { "UK", 65000000 } // that is selected option in selected box

        }

    };
</script>

最佳答案

您不必将选择事件添加到控件。更有效的方法是订阅 selectedCountry变化:

viewModel.selectedCountry.subscribe(function (data) {
        console.log(data)
    });

如果您不希望默认选择任何国家/地区,则必须添加 optionsCaption绑定(bind)到 data-bind :
<select data-bind="options: availableCountries,
                       optionsText: 'countryName',
                       value: selectedCountry,
                       optionsCaption: 'Select...'"></select>

这是工作 fiddle :http://jsfiddle.net/vyshniakov/tuMta/1/

关于knockout.js - knockoutjs 如何获取选中的选项arrayObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14706784/

相关文章:

knockout.js - 数据绑定(bind)中嵌入的条件语句

javascript - Knockout - 数据绑定(bind)覆盖 html 元素内的其他元素

javascript - 在 knockout.js 中为 nl2br 创建自定义绑定(bind)

knockout.js - knockout ,在 observableArray 中找到值的最佳方法是什么

knockout.js - 来自 ko.toJSON 的访问被拒绝

knockout.js - knockout 验证: Dynamic constraints

javascript - knockout 计算未更新

knockout.js - KnockoutJs 中的 `valueWillMutate` 是什么?

knockout.js - 带有验证的 Knockout-JS 多步骤表单

jquery - 如果 iframe src 加载失败捕获错误。错误 : -"Refused to display ' http://www. google.co.in/' in a frame.."