Javascript 选择选项敲除事件不工作

Javascript 选择选项敲除事件不工作,javascript,knockout.js,Javascript,Knockout.js,嗨,我正在使用敲除生成我的下拉框。。但是我想对我的选项应用事件更改,这些选项是在我的for each中创建的。当我更改选项时,不会触发任何内容 代码: <select> <option value"">Please select option</option> <!-- ko foreach: { data: Category.Options, as: 'Options' } --> <op

嗨,我正在使用敲除生成我的下拉框。。但是我想对我的选项应用事件更改,这些选项是在我的for each中创建的。当我更改选项时,不会触发任何内容

代码:

<select>
    <option value"">Please select option</option>
         <!-- ko foreach: { data: Category.Options, as: 'Options' } -->
             <option value="" data-bind="text:  Options.Name + ' ' + Options.Description, event: {change: function () {   alert('hello')} }"></option>
         <!--/ko--> 
</select>

请选择选项
有人能看出我做错了什么吗?如果有,请给我一个如何纠正的例子

谢谢

检查此型号:

<select data-bind="options: choices, value: selectedChoice"></select>
<hr />
<select data-bind="event: { change: selectionChanged }">
     <option>A</option>
     <option>B</option>
     <option>C</option>
</select>

我从JSFIDLE中获取了这一点,但正如您所知,不允许从那里粘贴链接。

选项不改变,选择不改变。将选择连接到您的viewmodel,然后您可以订阅该模型上的任何更改。使用knockout,您希望尽可能多地将javascript保留在HTML之外,这是它的一个要点-不要尝试像那样内联编写函数,通常有更好的方法。有一个如何绑定select的示例。请注意,select中有一个可用的选项列表,您通常甚至不需要为选项元素提供HTML,而是让它们由绑定驱动
var viewModel = {
    choices: ["one", "two", "three"],
    selectedChoice: ko.observable("two") ,
    selectionChanged: function(event) {
         alert("the other selection changed");  
    } 
};
viewModel.selectedChoice.subscribe(function(newValue) {
   alert("the new value is " + newValue); 
});
ko.applyBindings(viewModel);