Preselect an item in my dropdown with knockout

knockout.js

Solution

Two ways I can think of to do this. Either way you'll have to add a `selectedCategory` observable property to store track the currently selected option.

Use the `optionsValue` binding and specify `'id'` as the property you'd like to use as the `value` of each `option`:

<select data-bind="options: categories, 
                   optionsText: 'description', 
                   value: selectedCategory, 
                   optionsValue: 'id'">                 
</select>

Then set `selectedCategory` equal to "2":

this.selectedCategory = ko.observable(2);

Example: http://jsfiddle.net/RfWVP/281/

Create the category with id "2" before creating your observable array of categories and set the `selectedCategory` equal to that category:

var selected = new Category(2, "Non nucléaire");

this.categories = ko.observableArray([
    new Category(1, "Non classé"),
    selected,
    new Category(3, "Classe II irradié"),
    new Category(4, "Classe III")
]);

this.selectedCategory = ko.observable(selected);

Example: http://jsfiddle.net/RfWVP/280/

Which one you use depends on what information you need about the selected category.

Problem

I have the following dropdown: ``` <div> Dummy <select data-bind="options: categories, optionsText: 'description', value: 2"></select> </div> ``` With the javascript below: ``` function ViewModel() { this.categories = ko.observableArray([ new Category(1, "Non classé"), new Category(2, "Non nucléaire"), new Category(3, "Classe II irradié"), new Category(4, "Classe III") ]); // Constructor for an object with two properties function Category(id, description) { this.id = id; this.description = description; }; } ko.applyBindings(new ViewModel()); ``` I would like to pre-select the element with the id of 2 in the dropdown. Any idea? Thanks. jsFiddle: http://jsfiddle.net/RfWVP/276/

Original source