Javascript 当用户使用键盘时,Knockout.js valueUpdate不工作
我正在使用Knockout.js和ASP.NET。我的HTML如下所示: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
<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>
固定/浮动
对不起,这不能解决问题。模型数据仍然仅在单击控件时更改,而不是在使用键盘时更改。