Knockout 拡張機能のknockout-secure-bindingを使用していますが、問題が発生しました。
特に、Object.definePropertyノックアウトes5 のように を使用する場合、 で変更イベントがトリガーされたときにバインディングの関数は呼び出されませvalueん。updateinput
私の単体テストはその特異性を示しています。これは機能します:
it("reads an input `value` binding", function () {
    var input = document.createElement("input"),
        evt = new CustomEvent("change"),
        context = { vobs: ko.observable() };
    input.setAttribute("data-sbind", "value: vobs")
    ko.applyBindings(context, input)
    input.value = '273-9164'
    input.dispatchEvent(evt)
    assert.equal(context.vobs(), '273-9164')
})
これ (knockout-es5 がプロパティを定義する方法) は機能しません。
it("reads an input `value` binding for a defineProperty", function () {
    // see https://github.com/brianmhunt/knockout-secure-binding/issues/23
    var input = document.createElement("input"),
        evt = new CustomEvent("change"),
        obs = ko.observable(),
        context = { };
    Object.defineProperty(context, 'pobs', {
        configurable: true,
        enumerable: true,
        get: obs,
        set: obs
    });
    input.setAttribute("data-sbind", "value: pobs")
    ko.applyBindings(context, input)
    input.value = '273-9164'
    input.dispatchEvent(evt)
    assert.equal(context.pobs, '273-9164')
})
後者の場合、前述のように、value.updateが呼び出されたときに呼び出されていませんinput.dispatchEvent。
カスタムバインディングは独自の を返しているvalueAccessorため、問題はそれに関連していると思います。オブジェクトのプロパティでは機能するが、 では機能しないというのは特に奇妙に思えdefinePropertyます。