Javascript 当用户使用键盘时,Knockout.js valueUpdate不工作

Javascript 当用户使用键盘时,Knockout.js valueUpdate不工作,javascript,knockout.js,Javascript,Knockout.js,我正在使用Knockout.js和ASP.NET。我的HTML如下所示: <div class="InputField"> Fixed/Floating <div class="FieldContainer"> <select data-bind="options: $root.FixedLoanOptions, selectedOptions: IsFixed, valueUpdate: 'change'" ></sel

我正在使用Knockout.js和ASP.NET。我的HTML如下所示:

<div class="InputField">
    Fixed/Floating
    <div class="FieldContainer">
        <select data-bind="options: $root.FixedLoanOptions, selectedOptions: IsFixed, valueUpdate: 'change'" ></select>
    </div>
</div>

固定/浮动
如果用户使用鼠标选择项目,JSON将返回到服务器并提供更新的信息。但是,如果用户使用“tab”在select控件上进行制表,选择一个项目,然后关闭制表符,那么即使所选项目显示在UI上,JSON也会返回此控件的空白值

如果用户仅使用keybord,则敲除视图模型似乎不会更新,当用户使用鼠标时,浏览器中似乎会发生一些特定的更改事件

我怎样才能解决这个问题?是否有一种方法可以注册SelectBoxesOnChange事件以使用手动更新淘汰模型的函数


我在IE9和Firefox中都尝试过,但在这两个版本中我都遇到了相同的问题。

当knockoutjs将模型更新为模糊时,您可以更改事件,模糊会触发更多

<div class="InputField">
    Fixed/Floating
    <div class="FieldContainer">
        <select data-bind="valueUpdate: 'blur', options: $root.FixedLoanOptions, selectedOptions: IsFixed" ></select>
    </div>
</div>

固定/浮动

其余的代码是什么样子的?AJAX调用是如何进行的

在IE和Firefox上,这个用键盘修改select的示例对我来说可以正常工作:

正如您在淘汰更新模型上看到的,仅当选择了“选择”选项时:

  • 鼠标点击
  • 按回车键,然后按键盘箭头按钮进行选择

    • 将valueUpdate绑定到“keyup”对我来说是个好办法。不影响鼠标所做的更改,所以目前看起来不错

      因此,类似这样的方法应该有效:

      <div class="InputField">
          Fixed/Floating
          <div class="FieldContainer">
              <select data-bind="valueUpdate: 'keyup', options: $root.FixedLoanOptions, selectedOptions: IsFixed" ></select>
          </div>
      </div>
      
      
      固定/浮动
      
      对不起,这不能解决问题。模型数据仍然仅在单击控件时更改,而不是在使用键盘时更改。