javascript - 如何在同一输入元素中绑定(bind) value 和 keydown 事件?

标签 javascript knockout.js

当我将 Observable 变量绑定(bind)到 input 值以及 keydown 事件时,它不会更新可观察值

function vModel() {
  var vm = this;
  
  vm.value = ko.observable();
  vm.keyDown = function() {
    
  };
}

ko.applyBindings(new vModel());
  <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
  <input type="text" data-bind="value: value, event: {keydown: keyDown}">
  
  <span data-bind="text: value"></span>

如何在同一个输入元素中绑定(bind)valueevent: {keydown: myKeyDown}

最佳答案

您可以在事件监听器中返回 true 以确保按下按键后能够进入输入。

但是,您可能需要查看 textInput 绑定(bind) (textInput: value) 并订阅 value > 相反...

function vModel() {
  var vm = this;
  
  vm.value = ko.observable();
  vm.keyDown = function() {
    console.log("key down");
    return true;
  };
}

ko.applyBindings(new vModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<input type="text" data-bind="value: value, event: {keydown: keyDown}">    
<span data-bind="text: value"></span>

关于javascript - 如何在同一输入元素中绑定(bind) value 和 keydown 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44807405/

相关文章:

knockout.js - Knockoutjs - 表格行点击绑定(bind),想要从点击事件中排除列

javascript - VueJS 在内联模板组件中重新编译 HTML

javascript - 更改onclick事件

javascript - 如何防止 jQuery apendTo 重复内容

javascript - 具有多个输入的 Knockout Has-focus

javascript - 使用 ko.toJSON 时传递一个返回 ko.compulated Error 值的函数

javascript - 添加到我的代码中

javascript - 为什么动画没有按预期发生以将框放在底部

javascript - kriskowal/q node.js q.all 和传播

knockout.js - knockout 将 css 类绑定(bind)到观察到的模型属性