0

Keyup で動作するカスタム バインディングがあり、ユーザーが手動でデータを入力すると、valueAccessor().call が正常に動作し、目的の次の関数に入ります。ただし、同じデータをバーコード化し、同じリターン キーを送信すると (送信される最後の keyCode が両方のメソッドで 13 であることを確認しました)、valueAccessor は次の関数に到達せず、脱落します。

これは、バーコード データがフィールドに入力される速度と、それに続く「Enter」キーに関係があると思われます。バーコード文字の入力速度を遅くすると効果がありますか? もしそうなら、どのような方法をお勧めしますか?

ko.bindingHandlers.enterKey = {
init: function (element, valueAccessor, allBindings, vm) {
    ko.utils.registerEventHandler(element, "keyup", function (event)
    {
        if (event.keyCode === 13)  {
            ko.utils.triggerEvent(element, "change");
            valueAccessor().call(vm, vm); 

        }

        return true;
     }
    );
}
4

1 に答える 1