0

ユーザーが「タブ」ボタンを使用してフィールドから移動したかどうかを検出しようとしています。そうであれば、データを保存したいと思います。

この場合、タブを介して最後のフィールドを終了すると、2 つのフィールドが保存されます。「保存」を手動でクリックすると、両方のフィールドが正しく更新されます。TAB を使用すると、最初のフィールドのみが保存され、古いフィールドには新しいデータが保存されません。これは、どういうわけか「キーダウン」バインディングが新しいデータを認識していないことを示しています。

ローカルでデバッグして、tabOut メソッドの "data" にカーソルを合わせると、最初のフィールドには新しいデータが含まれていますが、2 番目のフィールドには古いデータが含まれていることがわかります。

フィドル: http://jsfiddle.net/PTSkR/18/

どんな助けでも大歓迎です!

見る:

        <div class="span5 side-study-box">
            <textarea data-bind="value: sides()[0].content"></textarea>
        </div>
        <div class="span5 side-study-box">
            <textarea data-bind="value: sides()[1].content, event: { keydown: tabOut }"></textarea>
        </div>

タブアウト関数:

self.tabOut = function (data, event) {

            if (event.keyCode == 9) {
                debugger;
                self.save();
            };
            return true;
        };
4

1 に答える 1

2

テキストボックスに「valueUpdate:'afterkeydown'」ビンギングを追加してみましたか?

于 2013-03-30T00:32:14.897 に答える