Javascript 重写enter键时更新值

Javascript 重写enter键时更新值,javascript,knockout.js,Javascript,Knockout.js,当我有输入和按钮时,我有一个页面 <div> <div class="input-group"> <span class="input-group-addon">Enter test</span> <input type="Text" class="form-control" data-bind="value:Test, event: { keypress: searchKeyboardCmd}" re

当我有输入和按钮时,我有一个页面

<div>
    <div class="input-group">
        <span class="input-group-addon">Enter test</span>
        <input type="Text" class="form-control" data-bind="value:Test, event: { keypress: searchKeyboardCmd}" required  />
    </div>
</div>
<button data-bind=' event:{click:foo}' class="btn btn-default">Submit</button>
}))

我的代码有问题。我用以下代码输入:

        self.searchKeyboardCmd = function (data, event) {
        if (event.keyCode == 13)
            alert("Znalazlem enter " + ko.toJSON(self));
        return true;
    };

它捕捉得很好,但绑定对象在调用警报后会更新。因此,在第一个值测试中输入null。第二次输入后,我有第一个值,依此类推。有人能建议我如何修改此代码吗?

问题是,事件在
模糊
事件之前执行(即值更新时)。您可以通过在输入中添加
valueupdate:'afterkeydown'
来确保在每次击键后更新:

<div>
    <div class="input-group">
        <span class="input-group-addon">Enter test</span>
        <input type="Text" class="form-control" 
               data-bind="valueUpdate: 'afterkeydown', value:Test, event: { keypress: searchKeyboardCmd}" required  />
    </div>
</div>
<button data-bind=' event:{click:foo}' class="btn btn-default">Submit</button>

进入测试
提交
<div>
    <div class="input-group">
        <span class="input-group-addon">Enter test</span>
        <input type="Text" class="form-control" 
               data-bind="valueUpdate: 'afterkeydown', value:Test, event: { keypress: searchKeyboardCmd}" required  />
    </div>
</div>
<button data-bind=' event:{click:foo}' class="btn btn-default">Submit</button>