如何使selectedValue允许不区分大小写

abc*_*123 5 javascript jquery knockout.js

我希望能够设置一个淘汰赛的价值observable那是value一个selectcase-insensitivity.所以在我的下面的例子中,传递justin将设置selectedValueJustin.

不工作:jsfiddle

工作:jsfiddle

HTML

<select id="people" data-bind="options: peopleList, value: selectedPerson, optionsCaption: 'Choose...'">
</select>
Run Code Online (Sandbox Code Playgroud)

JS

function MyViewModel(defaultPerson) {
    var self = this;
    self.selectedPerson = ko.observable(defaultPerson);
    self.peopleList = ko.observableArray(["Justin", "Sam", "Chris", "John"]);
}

$(function(){
    var person = 'justin';
    var viewModel = new MyViewModel(person);

    ko.applyBindings(viewModel);
});
Run Code Online (Sandbox Code Playgroud)

Art*_*kov 1

您可以自己渲染选项而不使用options绑定。这将允许您将值转换为小写:

<select id="people" data-bind="value: selectedPerson, optionsCaption: 'Choose...'">
    <option value=''>Choose...</option>
    <!-- ko foreach: peopleList -->
        <option data-bind='value: $data.toLowerCase(), text: $data'></option>
    <!-- /ko -->
</select>
Run Code Online (Sandbox Code Playgroud)

这是工作中的jsFiddle