我有一个带有 knockout 值的基本输入字段:
<input type="text" data-bind="value: mytext"/>
但是,我想在收到“mytext”的值后对我的 View 模型执行一些逻辑。 最初我想到了某种后处理事件ala“valueUpdate”,但基本上我只想在点击“enter”和“space”后运行一个函数。我是否需要编写一个新的绑定(bind)处理程序,或者是否有更直接的 knockout 合适的方法来做到这一点?
基本上我想做的是 jquery/autocomplete/multible 和 Ryan Niemeyers knockout 排序示例的组合 http://jsfiddle.net/rniemeyer/vgXNX 。
My位于div.container中的div.item之后,替换“添加任务”,如:
<div class="container">
<div class="item" data-bind="sortable:{template:'tagsTmpl',data:myTags, allowDrop:true"></div>
<input data-bind="value: mytext, event: {keypress: handleKey}"/>
<!-- Line above replacing this: <a href="#" data-bind="click: $root.addTag">Add Tag</a> -->
</div>
最佳答案
basically I just want to run a function after "enter" og "space" is hit.
您可以使用事件
绑定(bind)。
ko.applyBindings({
mytext: ko.observable("initial value"),
handleKey: function(data, event) {
if (event.keyCode == 0x20) {
console.log("Space has been pressed!");
}
return true;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<input type="text" data-bind="value: mytext, event: {keypress: handleKey}" />
关于javascript - 后处理 Knockout.JS 输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27764194/